Я новичок в VBA и хочу знать, смогу ли я преобразовать следующее объявление и присваивание в одну строку:
Dim clientToTest As String
clientToTest = clientsToTest(i)
или
Dim clientString As Variant
clientString = Split(clientToTest)
vba
variable-declaration
Йен Р. О'Брайен
источник
источник
Вы можете сделать это с помощью объектов, как показано ниже.
Но не со строками или вариантами.
источник
:
. Существуют некоторые ограничения, поскольку вы не можете иметь несколько объявлений значений в одной строке (т.е.var1 = val1: var2 = val2
). Он будет ошибаться сперадически и позволит вам иногда выполнять этот тип назначения, но в целом не предлагается этим обозначением.Dim x As New T
синтаксис, который работает только с объектами.dim str as String: str = "value"
иdim str as Worksheet: set str = ActiveWorkbook.worksheets("Sheet1")
оба работают неоднократно. Хотя, если я сделаю экземпляр объекта,dim ws as New Worksheet: set ws = ActiveWorkbook.Worksheets("Sheet1")
произойдет ошибка, как и любая другая недопустимая операция в VBA.New
Ключевое слово не делает. Это все, что я говорю.на самом деле, вы можете, но не так.
И вы можете установить переменные по-разному при вызове подпрограммы, или позволить им их значения по умолчанию.
источник
В некоторых случаях всю потребность в объявлении переменной можно избежать с помощью
With
оператора .Например,
это можно переписать как
источник
Вы можете определить и присвоить значение, как показано ниже в одной строке. Я привел пример двух переменных, объявленных и назначенных в одной строке. если тип данных нескольких переменных одинаков
источник