Могу ли я одновременно объявить и назначить переменную в VBA?
Я новичок в VBA и хочу знать, могу ли я преобразовать следующее объявление и назначение в одну строку:
Dim clientToTest As String
clientToTest = clientsToTest(i)
или
Dim clientString As Variant
clientString = Split(clientToTest)
Ответ 1
К сожалению, в VBA сокращений нет. Самое близкое, что вы получите, - это чисто визуальная вещь, использующая символ продолжения :, если вы хотите, чтобы он был на одной строке для удобства чтения;
Dim clientToTest As String: clientToTest = clientsToTest(i)
Dim clientString As Variant: clientString = Split(clientToTest)
Подсказка (резюме других ответов/комментариев): Работает и с объектами (Excel 2010):
Dim ws As Worksheet: Set ws = ActiveWorkbook.Worksheets("Sheet1")
Dim ws2 As New Worksheet: ws2.Name = "test"
Ответ 2
Вы можете сортировать это с объектами, как в следующем.
Dim w As New Widget
Но не со строками или вариантами.
Ответ 3
на самом деле, вы можете, но не так.
Sub MySub( Optional Byval Counter as Long=1 , Optional Byval Events as Boolean= True)
'code...
End Sub
И вы можете установить переменные по-разному при вызове sub или оставить их по умолчанию.
Ответ 4
В некоторых случаях можно полностью исключить необходимость объявления переменной с помощью оператора With.
Например,
Dim fd As Office.FileDialog
Set fd = Application.FileDialog(msoFileDialogSaveAs)
If fd.Show Then
'use fd.SelectedItems(1)
End If
это можно переписать как
With Application.FileDialog(msoFileDialogSaveAs)
If .Show Then
'use .SelectedItems(1)
End If
End With