Q1. Bốn giá trị nào được in ra bởi hàm và thủ tục này?
Function GetVitals(ID AsLong, Age AsLong, Optional Weight AsLong) AsString GetVitals="ID=" & ID &"Age=" & Age & "Weight=" & Weight
EndFunctionSub ShowVitals()
Dim ID AsLong, Age AsLong,Weight asLong Debug.Print GetVitals(ID:=5,Age:=20)
Debug.Print GetVitals(ID:=6,Age:=25,Weight:=130)
EndSub
Q2. Mã này hiển thị câu lệnh đầu tiên của CalledSub. Câu lệnh gọi nào sẽ hoạt động đúng?
Sub CalledSub(Surname, Age)
gọi Calledsub "smith",26
calledsub (surname="smith", Age = 26)
calledsub (Surname:="Smith", Age:=26)
calledsub "smith", 26
Q3. Sự khác biệt chính giữa một lớp và một đối tượng là gì?
Không có sự khác biệt ý nghĩa. Hai thuật ngữ này được sử dụng thay thế cho nhau.
Một lớp khai báo các thuộc tính của một đối tượng. Một đối tượng hoàn thiện khai báo bằng cách xác định sự kiện và phương thức.
Một đối tượng là một mẫu cho một lớp.
Một lớp mô tả thiết kế của một đối tượng. Một đối tượng là một thể hiện của thiết kế đó.
Q4. Câu lệnh MsgBox sẽ hiển thị giá trị nào?
Sub MySub(VarA AsLong, ParamArray VarB() As Variant)
MsgBox VarB(0)
EndSubSub ShowValue()
Call MySub(10, "First arg", 2, 3.1416)
EndSub
2
10
First arg
3.1416
Q5. Đối tượng nào cần thiết để đưa một mô-đun userform vào một dự án VBA?
mô-đun mã tiêu chuẩn kết hợp
UserForm
mô-đun lớp kết hợp
lớp userForm
Q6. Kết quả là gì?
Sub UseSum()
Dim TestArray() As Integer, Total As Integer
ReDim TestArray(1)
TestArray(1) = 6ReDim TestArray(2)
TestArray(2) = 3Total = WorksheetFunction.Sum(TestArray)
EndSub
3
0
9
6
Q7. Thủ tục con Driver được khai báo bởi Sub Driver (Y). Câu lệnh nào sẽ gây ra lỗi biên dịch?
Driver x
call Driver(x)
call Driver x
Driver (X)
Q8. Bạn có một số biến để hiển thị trên một mẫu người dùng, và có quá nhiều biến để hiển thị cùng một lúc. Điều khiển nào là tốt nhất để người dùng xem tất cả các biến?
Khung
nhiều trang
TabStrip
ListBox
Q9. Dưới đây là một hàm có tên SquareIt. Phiên bản nào của thủ tục con có tên Area sẽ gây ra lỗi biên dịch?
Function SquareIt(ByRef Basis AsInteger) AsLongSquareIt = Basis ^ 2EndFunction
sub Area()
Dim Result AsLong, Side AsIntegerSide = 5Result = Squarelt(Side)
EndSub
Sub Area()
Dim Result AsLong, Side
Side = 5Result = SquareIt(Cint(Side))
EndSub
Q10. EmailAddress() là một mảng. Nó được khai báo bởi Dim EmailAddress(10) As String, và tùy chọn Base 1 đang có hiệu lực. Có bao nhiêu hàng và cột trong EmailAddress()?
c sau khi bạn đặt tên các thủ tục, hằng số, biến và đối số trong một mô-đun Visual Basic: Bạn phải sử dụng một chữ cái là ký tự đầu tiên. Bạn không thể sử dụng dấu cách, dấu chấm (.), dấu chấm than (!), hoặc các ký tự @, &, $, # trong tên. Tên không được vượt quá 255 ký tự.`
Q13. Đâu là định nghĩa hợp lệ của một kiểu dữ liệu do người dùng xác định?
:
Type CBC
NameAsStringNext AsStringEndType
:
Type CBC
NameAsString_Next AsStringEndType
:
Type CBC
NameAsString@Option AsStringEndType
:
Type CBC
NameAsString%ForAsStringEndType
Q14. Cách nào để sao chép một mẫu người dùng từ một dự án vào một dự án khác?
:
Lưu và đóng dự án có mẫu người dùng hiện có.
Nhấp vào Chèn > Tệp.
Duyệt đến vị trí của dự án hiện có.
Nhấp chuột phải và chọn mẫu người dùng bạn muốn sao chép.
:
Mở mẫu người dùng hiện có trong Chế độ Thiết kế.
Nhấp chuột phải vào biểu mẫu và chọn Sao chép.
Chuyển sang dự án khác.
Nhấp chuột phải vào Mô-đun và chọn Dán.
:
Trong Khám phá dự án, nhấp chuột phải vào mẫu người dùng và chọn Sao chép.
Chuyển sang dự án mới.
Nhấp chuột phải vào UserForms và chọn Dán.
:
Mở mẫu người dùng hiện có trong Chế độ Thiết kế.
Nhấp vào Tệp > Xuất Tệp.
Chuyển sang dự án khác.
Nhấp vào Tệp > Nhập Tệp.
Q15. Việc ghi lại một macro trong Word có thể không phản ánh hoàn toàn các hành động của người dùng. Tại sao?
Macro Recorder của Word không ghi lại các hành động khởi động bằng các phím tắt bàn phím.
Macro Recorder của Word không hỗ trợ chỉnh sửa Tìm & Thay thế.
Macro Recorder của Word không ghi lại các hành động khởi động bằng cách nhấp vào nút trên tab Developer của Ribbon.
Macro Recorder của Word không ghi lại các hành động liên quan đến việc chọn văn bản bằng cách trỏ bằng con trỏ chuột.
Q16. Câu lệnh nào nên đi trước bộ xử lý lỗi của một thủ tục con?
End
Return
Exit Sub
Stop
Q17. Một mảng có thể chứa bao nhiêu giá trị?
Option Base 0
Sub BuildArray()
Dim MyArray(5) As Integer
0
32,769
5
6
Q18. Câu nào là đúng?
Set thiết lập một giá trị trong một lớp; Let trả về một giá trị từ một lớp.
Let thiết lập một giá trị trong một lớp; Set trả về một giá trị từ một lớp.
Let thiết lập một giá trị trong một lớp; Get trả về một giá trị từ một lớp.
Get thiết lập một giá trị trong một lớp; Set trả về một giá trị từ một lớp.
Q19. Một khai báo có phạm vi, có ba cấp độ phạm vi. Đó là những gì?
Module, Dự án và Tự động hóa
Thủ tục, Mô-đun Riêng tư và Mô-đun Công khai
Thủ tục con, Mô-đun và Dự án
Thủ tục, Dự án và Toàn cầu
Q20. Cần phải chọn hai tài liệu tham khảo nào trong Trình chỉnh sửa Visual Basic để chạy bất kỳ mã Visual Basic nào trong Excel?
Thư viện đối tượng MS Excel và Thư viện đối tượng MS Office
VBA và Thư viện đối tượng MS Office
VBA và Thư viện đối tượng Excel
Thư viện đối tượng MS Excel và Tự động hóa OLE
Q21. Hành động nào sẽ làm cho dự án của bạn thiết lập lại các biến của nó?
Chỉnh sửa danh sách đối số của thủ tục hiện tại trong chế độ gỡ lỗi.
Nhấp vào End trong hộp thoại lỗi thời gian chạy.
Thêm một ActiveXcontrol vào một bảng tính.
tất cả các câu trả lời
này
Q22. Phím tắt nào khiến VBE tìm vị trí của một thủ tục?
Shift+F3
Alt+F (Windows) hoặc Option+F (Mac)
Shift+F2
Ctrl+F (Windows) hoặc Command+F (Mac)
Q23. Khi bạn xác định một lớp đối tượng mới, bạn gán tên cho nó ở đâu?
trong tên của mô-đun lớp
trong mã của mô-đun lớp
trong mã của một mô-đun tiêu chuẩn
trong các Thuộc tính của một mô-đun tiêu chuẩn
Q24. Làm thế nào một mô-đun lớp chỉ ra rằng nó sử dụng một giao diện cụ thể?
Chính giao diện đó là một phần của mô-đun lớp.
bằng từ khóa Interface và tên của giao diện
bằng từ khóa Implements và tên của giao diện
Tên của giao diện được chuyển làm tham số.
Q25. Điều gì cần thiết cho nội dung của Module1 có thể sẵn có cho các mô-đun khác trong dự án VBA, nhưng không phải cho bất kỳ dự án VBA nào khác?
Thiết lập Tùy chọn Toàn cầu ở đầu Module1
Khai báo biến cấp mô-đun như Riêng tư
Thiết lập Phạm vi Mô-đun Cấp độ ở đầu Module1
Thiết lập Tùy chọn Mô-đun Riêng tư ở đầu Module1
Q26. Khi sử dụng với một mảng có tên MyArray, cách ưu tiên nhất để thiết lập các giá trị bắt đầu và kết thúc của biến điều khiển vòng lặp là gì?
For i = 0 To UBound(MyArray,1)
For i = 1 To UBound(MyArray,1)
For i = LBound(MyArray,1) To UBound(MyArray,1)
Điều này phụ thuộc vào việc Option Base 0 hoặc Option Base 1 có được sử dụng hay không.
Q29. Để sử dụng mã VBA để duy trì một dự án VBA khác, bạn có thể sử dụng tính mở rộng của VBA. Điều gì cần thiết để kích hoạt tính mở rộng?
Thiết lập Bảo mật Macro để Tin tưởng Truy cập vào Mô hình Dự án VBA
Sách công việc của dự án cần được bảo vệ trong tab Xem xét của Ribbon
Bao gồm một tham chiếu đến Microsoft VBA Extensibility 5.3
Bao gồm một tham chiếu đến Microsoft VBA Extensibility 5.3 và thiết lập Bảo mật Macro để Tin tưởng Truy cập vào Mô hình Dự án VBA
Q30. Làm thế nào để thêm một mẫu người dùng vào một dự án VBA?
:
Chọn dự án trong cửa sổ Dự án của Trình chỉnh sửa Visual Basic
Nhấp vào nút Chế độ Thiết kế và chọn Chế độ Chèn
:
Chọn dự án trong cửa sổ Dự án của Trình chỉnh sửa Visual Basic
Nhấp vào nút Hộp công cụ và chọn UserForm
:
Chọn dự án trong cửa sổ Dự án của Trình chỉnh sửa Visual Basic
Nhấp chuột phải vào menu Chạy và chọn Tùy chỉnh
:
Chọn dự án trong cửa sổ Dự án của Trình chỉnh sửa Visual Basic
Nhấp vào Chèn > Mẫu người dùng
Q31. Khai báo biến rõ ràng là bắt buộc. MyVar được khai báo ở cả mức mô-đun và mức thủ tục. Giá trị của MyVar sau khi chạy AAA() đầu tiên và sau đó là BBB() là gì?
Dim MyVar AsStringSub AAA()
Dim MyVar AsStringMyVar = "Phạm vi thủ tục AAA"EndSubSub BBB()
MyVar = "Phạm vi thủ tục BBB"EndSub
MyVar bằng "Phạm vi thủ tục AAA"
ISNULL(MyVar) là TRUE
MyVar bằng "Phạm vi thủ tục BBB"
MyVar là NULL
Here are the converted questions:
Q32. Module nào trong các mô-đun lớp gây ra lỗi biên dịch?
Q33. Nếu mã VBA khai báo FileCount là một hằng số thay vì một biến, mã sẽ chạy nhanh hơn. Tại sao điều này lại xảy ra?
Phạm vi của hằng số giới hạn trong thủ tục khai báo chúng.
Hằng số được khai báo tại thời điểm biên dịch, nhưng biến được khai báo tại thời điểm chạy.
Một khi được khai báo trong dự án, giá trị của một hằng số không thể thay đổi. Không cần phải tra cứu giá trị hiện tại của FileCount khi nó là một hằng số.
Khai báo Const chỉ định kiểu hiệu quả nhất dựa trên giá trị của hằng số.
Q34. Một dự án VBA phải khai báo bốn lớp. Cần bao nhiêu mô-đun lớp?
hai (một cho các thuộc tính và một cho các phương thức)
một (mỗi lớp được khai báo trong cùng một mô-đun)
bốn (một cho mỗi lớp)
bằng số lượng cần thiết bởi các loại biến mà các đối tượng trả về
Q35. Đoạn mã này hiển thị gì?
Sub MakeErrors()
Dim Y As Variant, Z As Variant
OnErrorResumeNextY = 1 / 0MsgBox "Y = " & Y
OnErrorGoTo0Z - (0 - 3) ^ 0.5MsgBox "Z = " & Z
EndSub
Một thông báo lỗi
Y và Z
Z = trong hộp thoại thông báo và sau đó là một thông báo lỗi sau đó
Y = trong hộp thoại thông báo và sau đó là một thông báo lỗi sau đó
Q36. Khối mã VBA được hiển thị trong bốn lựa chọn sau chạy khi nút CommandButton1 của UserForm1 được nhấn. Khối mã nào làm cho UserForm1 được tải nhưng không hiển thị cho đến khi hàm FoundErrors đã kiểm tra nó, và sau đó cho phép xử lý tiếp tục nếu không tìm thấy lỗi?
:
PrivateSub CommandButton1_Click()
If FoundErrors(Me) Then _
Me.Show
EndSub
:
Private Sub CommandButton1_Click()IfNot FoundErrors(UserForm1) Then _
Unload UserForm1End Sub
Q38. Tại sao đoạn mã này tạo ra một lỗi "Subscript out of range"?
Sub Example()
Dim MyArr() As Variant
ReDim MyArr(3, 4)
'some codeReDimPreserve MyArr(4, 4)
EndSub
Mảng không thể được thay đổi kích thước nhiều hơn một lần.
MyArr ban đầu được khai báo với ba "hàng".
Bạn chỉ có thể thay đổi kích thước của chiều cuối cùng của một mảng khi bạn chỉ định ReDim Preserve.
Cú pháp chính xác là ReDim Preserve MyArr(0 To 4, 0 To 4).
Q39. Khai báo nào không gây ra lỗi biên dịch?
`Sub Called(Salary As Long
, ParamArray Vals() As Variant)`
Sub Called(ParamArray Vals() As Variant, Salary As Long)
Sub Called(Optional Salary As Long, ParamArray Vals() As Variant)
Sub Called(Salary As Long, ParamArray Vals() As String)
Q40. Làm thế nào để người dùng nhập dữ liệu trên một bảng tính hoặc tài liệu, hoặc chuyển cửa sổ, trong khi UserForm1 được hiển thị trên màn hình?
Hiển thị biểu mẫu với câu lệnh này: UserForm1.Show vbModal
Bao gồm câu lệnh này trong mã: UserForm1.Hwnd = False.
Đặt thuộc tính SpecialEffect của biểu mẫu người dùng thành frmShowModal
Đặt thuộc tính ShowModal của biểu mẫu người dùng thành False.
Q41. SubA chuyển MyVar cho SubB. Làm thế nào để đảm bảo rằng MyVar có giá trị ban đầu của nó khi kiểm soát trả về SubA?
Khai báo SubB như là Sub SubB(ByRef MyVar).
Khai báo SubB như là Sub SubB(MyVar).
Khai báo SubB như là Sub SubB(Static MyVar).
Khai báo SubB như là Sub SubB(ByVal MyVar).
Q42. Khai báo thủ tục nào là đúng cú pháp?
:
Sub MySub(VarA AsString, Optional VarB _
As Variant, Optional VarC AsLong)
:
Sub MySub(VarA AsString, Optional VarB _
As Variant, VarC AsLong)
:
Sub MySub(Optional VarA AsString, Optional VarB _
As Variant, VarC asLong)
:
Sub MySub(OPtional VarA AsString, VarB _
As Variant, Optional VarC asLong)
Q43. Hai loại thủ tục chính trong VBA là gì?
Hàm và Sự kiện
Hàm và Phạm vi
Thủ tục con và Sự kiện
Thủ tục con và Hàm
Q44. Khối mã nào được biên dịch mà không có lỗi?
Sub Decs() Dim MyFixed As String * 0 MyFixed = "A" MsgBox MyFixed End Sub
Sub Decs() Dim MyInt% * 1 MyInt = 7 MsgBox MyInt End Sub
Sub Decs() Dim MyInt% As Integer * 1 MyInt = 5 MsgBox MyInt End Sub
Sub Decs() Dim MyInt, MyNum As Integer MyInt = "A" MsgBox MyInt End Sub
Q45. Có gì được sử dụng trong cửa sổ Immediate để hiển thị giá trị hiện tại của biến CountValues?
= CountValues= CountValues
| CountValues| CountValues
: CountValues: CountValues
? CountValues? CountValues
Q46. Ở mức nào bạn có thể khai báo một biến theo cách sau: Private TopSecret As String?
hàm
mô-đun
thủ tục con
thủ tục
Q47. Làm thế nào người dùng có thể nhập dữ liệu trên một bảng tính hoặc tài liệu, hoặc chuyển cửa sổ, trong khi UserForm1 được hiển thị trên màn hình?
Hiển thị biểu mẫu với câu lệnh này: UserForm1.Show vbModal.
Đặt thuộc tính SpecialEffect của biểu mẫu người dùng thành frmShowModal.
Bao gồm câu lệnh này trong mã: UserForm1.Hwnd = False.
Đặt thuộc tính ShowModal của biểu mẫu người dùng thành False.
Q48. SubA chuyển MyVar cho SubB. Làm thế nào để đảm bảo rằng MyVar có giá trị ban đầu của nó khi kiểm soát trả về SubA?
Khai báo SubB như là Sub SubB(Static MyVar).
Khai báo SubB như là Sub SubB(ByVal MyVar).
Khai báo SubB như là Sub SubB(MyVar).
Khai báo SubB như là Sub SubB(ByRef MyVar).
Q49. Mảng không thể được thay đổi kích thước nhiều hơn một lần.
Sub Example() Dim MyArr() As Variant ReDim MyArr(3, 4) 'some code ReDim Preserve MyArr(4, 4)EndSubSub Example() Dim MyArr() As Variant ReDim MyArr(3, 4) 'some code ReDim Preserve MyArr(4, 4) End Sub
Cú pháp chính xác là ReDim Preserve MyArr(0 To 4, 0 To 4).
Bạn chỉ có thể thay đổi kích thước của chiều cuối cùng của một mảng khi bạn chỉ định ReDim Preserve.
MyArr ban đầu được khai báo với ba "hàng."
Khai báo SubB như là Sub SubB(ByRef MyVar).
Q50. Khối mã nào kết thúc với biến i bằng 5 và biến X bằng 10?
:
DoX = X + 1
i = i + 1
Loop Until i < 5
End Sub
:
Sub Loopi()
Dim X
AsInteger, i AsIntegerFor i = 1To5X = X + 1Next I
EndSub
:
Sub Loopi()
Dim X AsInteger, i AsIntegerDoUntil i < 5X = X + 1i = i + 1LoopEndSub
:
Sub Loopi()
Dim X AsInteger, i AsIntegerDoX = X + 1i = i + 1LoopWhile i < 5EndSub
Q51. Làm thế nào một mô-đun lớp chỉ định rằng nó sử dụng một giao diện cụ thể?
bằng từ khóa Implements và tên của giao diện.
bằng từ khóa Interface và tên của giao diện.
Tên của giao diện được chuyển làm tham số.
Giao diện chính là một phần của mô-đun lớp.
Q52. Phần nào của VBE có thể giúp bạn khám phá cú pháp VBA?
cửa sổ Locals
trình duyệt đối tượng
trình duyệt dự án
hộp thoại tùy chọn
Q53. Mã này đang cố gắng thiết lập một bộ sưu tập mới bao gồm tên và số của nhân viên. Assoc là một lớp. Tuyên bố nào đang thiếu trong mã?
Dim Associates As Collection, Assoc As CAssoc, i AsByteFor i = 1To200Set Assoc = New CAssoc
Assoc.Name = Cells(i,1)
Assoc.Number = Cells(i,2)
Associates.Add Assoc
Next i
Set Associates = New Collection
Set Associates = Collection
Redim(Associates(Associates.Count+1))
Redim(Associates _ (Unbound(Associates)+1))
Q54. Thuật ngữ tiêu chuẩn cho một biến hoặc giá trị được chuyển từ một thủ tục con hoặc hàm sang thủ tục con hoặc hàm khác là gì?
tham chiếu
phần tử
đối số
thuộc tính
Q55. Thuật ngữ tiêu chuẩn cho một biến hoặc giá trị được chuyển từ một thủ tục con hoặc hàm sang thủ tục con hoặc hàm khác là gì?
tham chiếu
phần tử
đối số
thuộc tính
Q56. Sự kiện Procedure tên Worksheet_Change được tìm thấy ở đâu?
trong bất kỳ mô-đun mã tiêu chuẩn nào
trong mô-đun đối tượng của bảng tính
trong mô-đun lớp Worksheet_Change
trong mô-đun mã của công việc
Q57. Bạn đang xây dựng một thủ tục sự kiện cho một bảng tính, và bạn chỉnh sửa danh sách đối số trong câu lệnh Sub của thủ tục sự kiện. Điều gì xảy ra khi thủ tục sự kiện chạy?
Không có sự khác biệt so với kết quả của một thủ tục tiêu chuẩn.
Các kết quả không thể đoán trước.
Thủ tục không biên dịch.
Thủ tục tạo ra một lỗi thời gian chạy.
Q58. Dựa trên đoạn mã này, thủ tục nào gọi thủ tục con SumCosts đúng cách?
Sub Sumosts(AcctName AsString, Amount AsLong)
Range("A1") = AcctName
EndSub