Câu trả lời:
set
được sử dụng để gán tham chiếu cho một đối tượng. Tương đương C sẽ là
int i;
int* ref_i;
i = 4; // Assigning a value (in VBA: i = 4)
ref_i = &i; //assigning a reference (in VBA: set ref_i = i)
VBA on the left | C on the right
) : Dim A, B As Range | Range A, B;
. Tương tự như vậy, A = B | A = B;
sẽ đúng (và nó sẽ bằng C), nhưng Set A = B | A = &B;
thực sự đúng trong VBA (và nó sẽ thất bại ở C). Trong VBA, A = B
và Set A = B
cả hai đều tương đương với C A = B;
! Sự phân biệt xảy ra ở một nơi khác.
Trong trường hợp của bạn, nó sẽ tạo ra một lỗi. :-)
Set
gán một tham chiếu đối tượng. Đối với tất cả các bài tập khác, câu lệnh (ngầm, tùy chọn và ít sử dụng) Let
là chính xác:
Set object = New SomeObject
Set object = FunctionReturningAnObjectRef(SomeArgument)
Let i = 0
Let i = FunctionReturningAValue(SomeArgument)
' or, more commonly '
i = 0
i = FunctionReturningAValue(SomeArgument)
Từ MSDN :
Đặt từ khóa: Trong VBA, từ khóa Set là cần thiết để phân biệt giữa gán đối tượng và gán thuộc tính mặc định của đối tượng. Vì các thuộc tính mặc định không được hỗ trợ trong Visual Basic .NET, từ khóa Set không cần thiết và không còn được hỗ trợ.
Object variable or With block variable not set
lỗi từ VBA :)
Ngoài đỉnh đầu của tôi, Set được sử dụng để gán các đối tượng COM cho các biến. Bằng cách thực hiện Set tôi nghi ngờ rằng dưới mui xe, nó thực hiện lệnh gọi AddRef () trên đối tượng để quản lý vòng đời của nó.
Vì vậy, khi bạn muốn đặt giá trị, bạn không cần "Đặt"; mặt khác, nếu bạn đang đề cập đến một đối tượng, ví dụ: bảng tính / phạm vi, v.v., bạn cần sử dụng "Đặt".
Set là một Keyword và nó được sử dụng để gán tham chiếu cho Object trong VBA.
Ví dụ: * Dưới đây ví dụ cho thấy cách sử dụng Set trong VBA.
Dim WS dưới dạng trang tính
Đặt WS = ActiveWorkbook.Worksheet ("Sheet1")
WS.Name = "Amit"