VBA'da yeniyim ve aşağıdaki beyanı ve atamayı tek bir satıra dönüştürüp dönüştüremeyeceğimi bilmek istiyorum:
Dim clientToTest As String
clientToTest = clientsToTest(i)
veya
Dim clientString As Variant
clientString = Split(clientToTest)
VBA'da yeniyim ve aşağıdaki beyanı ve atamayı tek bir satıra dönüştürüp dönüştüremeyeceğimi bilmek istiyorum:
Dim clientToTest As String
clientToTest = clientsToTest(i)
veya
Dim clientString As Variant
clientString = Split(clientToTest)
Yanıtlar:
Ne yazık ki VBA'da kısayol yok, en yakın alacağınız, :
okunabilirlik için bir satırda istiyorsanız , devam karakterini kullanan tamamen görsel bir şeydir ;
Dim clientToTest As String: clientToTest = clientsToTest(i)
Dim clientString As Variant: clientString = Split(clientToTest)
İpucu (diğer cevapların / yorumların özeti): Nesnelerle de çalışır (Excel 2010):
Dim ws As Worksheet: Set ws = ActiveWorkbook.Worksheets("Sheet1")
Dim ws2 As New Worksheet: ws2.Name = "test"
Bunu, aşağıdakiler gibi, nesnelerle yapabilirsiniz.
Dim w As New Widget
Ancak dizelerle veya varyantlarla değil.
:
. Aynı satırda (yani var1 = val1: var2 = val2
) birden fazla değer bildirimine sahip olamayacağınız için bazı sınırlamalar vardır . Speradik bir şekilde ortaya çıkacak ve bazen bu tür bir ödev yapmanıza izin verecek, ancak bir bütün olarak bu gösterimle önerilmeyecektir.
Dim x As New T
, yalnızca nesnelerle çalışan sözdizimidir.
dim str as String: str = "value"
ve dim str as Worksheet: set str = ActiveWorkbook.worksheets("Sheet1")
her ikisi de tekrar tekrar çalışıyor. Ancak, bir Nesne örnekleme yaparsanız dim ws as New Worksheet: set ws = ActiveWorkbook.Worksheets("Sheet1")
, VBA herhangi bir geçersiz işlem gibi hata olur.
New
Anahtar kelime yok. Tüm söylediğim bu.
aslında, yapabilirsiniz, ama bu şekilde değil.
Sub MySub( Optional Byval Counter as Long=1 , Optional Byval Events as Boolean= True)
'code...
End Sub
Alt değişkenleri çağırırken değişkenleri farklı şekilde ayarlayabilir veya varsayılan değerlerine bırakabilirsiniz.
Bazı durumlarda, bir değişkenin beyan edilmesine ilişkin tüm ihtiyaç, deyim kullanılarak önlenebilir.With
.
Örneğin,
Dim fd As Office.FileDialog
Set fd = Application.FileDialog(msoFileDialogSaveAs)
If fd.Show Then
'use fd.SelectedItems(1)
End If
bu şu şekilde yeniden yazılabilir
With Application.FileDialog(msoFileDialogSaveAs)
If .Show Then
'use .SelectedItems(1)
End If
End With
Aşağıda gösterildiği gibi bir satırda değer tanımlayabilir ve atayabilirsiniz. Tek bir satırda bildirilen ve atanan iki değişkenin bir örneğini verdim. birden çok değişkenin veri türü aynıysa
Dim recordStart, recordEnd As Integer: recordStart = 935: recordEnd = 946