Yanıtlar:
set
bir nesneye başvuru atamak için kullanılır. C eşdeğeri
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;
. Analojinizle gitmek A = B | A = B;
doğru olurdu (ve C Set A = B | A = &B;
cinsinden olurdu), ama aslında VBA'da doğrudur (ve C'de başarısız olur). VBA'da A = B
ve Set A = B
C'lere İKİ eşdeğerdir A = B;
! Ayrım başka bir yerde gerçekleşir.
Sizin durumunuzda bir hata üretecektir. :-)
Set
bir nesne başvurusu atar. Diğer tüm atamalar için (örtük, isteğe bağlı ve çok az kullanılan) Let
ifadesi doğrudur:
Set object = New SomeObject
Set object = FunctionReturningAnObjectRef(SomeArgument)
Let i = 0
Let i = FunctionReturningAValue(SomeArgument)
' or, more commonly '
i = 0
i = FunctionReturningAValue(SomeArgument)
Gönderen MSDN :
Anahtar Kelimeyi Ayarla: VBA'da, Set nesnesini ve bir nesnenin varsayılan özelliğinin atanmasını ayırt etmek için Set anahtar sözcüğü gereklidir. Varsayılan özellikler Visual Basic .NET'te desteklenmediğinden, Set anahtar sözcüğü gerekmez ve artık desteklenmez.
Object variable or With block variable not set
VBA hatasıyla gelen insanlar için yararlı değil :)
Başımın en üstünde Set, değişkenlere COM nesneleri atamak için kullanılır. Bir Set yaparak kaputun altında, ömrünü yönetmek için nesneye bir AddRef () çağrısı yaptığından şüpheleniyorum.
Set bir Anahtar Kelimedir ve VBA'daki bir Nesneye referans atamak için kullanılır.
Örneğin, * Aşağıdaki örnek Set'in VBA'da nasıl kullanılacağını göstermektedir.
Çalışma Sayfası Olarak Dim Dim
WS'yi ayarla = ActiveWorkbook.Worksheets ("Sayfa1")
WS.Name = "Amit"