Semoga pertanyaan yang mudah, tetapi saya ingin jawaban teknis untuk ini!
Apa perbedaan antara:
i = 4
dan
Set i = 4
dalam VBA? Saya tahu bahwa yang terakhir akan membuat kesalahan, tetapi saya tidak sepenuhnya mengerti mengapa.
vba
variable-assignment
Jon Artus
sumber
sumber
Jawaban:
set
digunakan untuk menetapkan referensi ke suatu objek. Setara C akan menjadisumber
VBA on the left | C on the right
):Dim A, B As Range | Range A, B;
. Pergi dengan analogi Anda,A = B | A = B;
akan benar (dan itu akan di C), tetapiSet A = B | A = &B;
sebenarnya benar di VBA (dan itu akan gagal di C). Dalam VBA,A = B
danSet A = B
KEDUA setara dengan C'sA = B;
! Perbedaannya terjadi di tempat lain.Dalam kasus Anda, itu akan menghasilkan kesalahan. :-)
Set
memberikan referensi objek. Untuk semua tugas lain, pernyataan (tersirat, opsional, dan sedikit digunakan)Let
benar:sumber
Dari MSDN :
sumber
Object variable or With block variable not set
kesalahan dari VBA :)Set digunakan untuk mengatur referensi objek, sebagai lawan untuk menetapkan nilai.
sumber
Dari atas kepala saya, Set digunakan untuk menetapkan objek COM ke variabel. Dengan melakukan Set saya menduga bahwa di bawah tenda itu melakukan panggilan AddRef () pada objek untuk mengelola itu seumur hidup.
sumber
Jadi, ketika Anda ingin menetapkan nilai, Anda tidak perlu "Set"; jika tidak, jika Anda merujuk ke objek, misalnya lembar kerja / rentang dll, Anda perlu menggunakan "Set".
sumber
Set adalah kata kunci dan digunakan untuk menetapkan referensi ke suatu objek di VBA.
Untuk Eg, * Contoh di bawah ini menunjukkan cara menggunakan Set in VBA.
Dim WS As Worksheet
Set WS = ActiveWorkbook.Worksheets ("Sheet1")
WS.Name = "Amit"
sumber