Sou novo no VBA e quero saber se posso converter a seguinte declaração e atribuição em uma linha:
Dim clientToTest As String
clientToTest = clientsToTest(i)
ou
Dim clientString As Variant
clientString = Split(clientToTest)
Sou novo no VBA e quero saber se posso converter a seguinte declaração e atribuição em uma linha:
Dim clientToTest As String
clientToTest = clientsToTest(i)
ou
Dim clientString As Variant
clientString = Split(clientToTest)
Respostas:
Infelizmente, não há taquigrafia no VBA. O mais próximo que você vai chegar é uma coisa puramente visual, usando o :
caractere de continuação, se você o quiser em uma linha para facilitar a leitura;
Dim clientToTest As String: clientToTest = clientsToTest(i)
Dim clientString As Variant: clientString = Split(clientToTest)
Dica (resumo de outras respostas / comentários): Também funciona com objetos (Excel 2010):
Dim ws As Worksheet: Set ws = ActiveWorkbook.Worksheets("Sheet1")
Dim ws2 As New Worksheet: ws2.Name = "test"
Você pode fazer isso com objetos, como a seguir.
Dim w As New Widget
Mas não com strings ou variantes.
:
. Existem algumas limitações, pois você não pode ter várias declarações de valor na mesma linha (ou seja var1 = val1: var2 = val2
). Irá funcionar de maneira esperada e permitir que você faça esse tipo de tarefa algumas vezes, mas como um todo, não sugerido por esta notação.
Dim x As New T
sintaxe, que funciona apenas com objetos.
dim str as String: str = "value"
e dim str as Worksheet: set str = ActiveWorkbook.worksheets("Sheet1")
ambos funcionam repetidamente. Embora, se eu fizer uma instanciação de objeto, ocorrerá dim ws as New Worksheet: set ws = ActiveWorkbook.Worksheets("Sheet1")
um erro como qualquer outra operação inválida no VBA.
New
palavra-chave não. É tudo o que estou dizendo.
de fato, você pode, mas não dessa maneira.
Sub MySub( Optional Byval Counter as Long=1 , Optional Byval Events as Boolean= True)
'code...
End Sub
E você pode definir as variáveis de maneira diferente ao chamar o sub, ou deixá-los com seus valores padrão.
Em alguns casos, toda a necessidade de declarar uma variável pode ser evitada usando a With
instrução .
Por exemplo,
Dim fd As Office.FileDialog
Set fd = Application.FileDialog(msoFileDialogSaveAs)
If fd.Show Then
'use fd.SelectedItems(1)
End If
isso pode ser reescrito como
With Application.FileDialog(msoFileDialogSaveAs)
If .Show Then
'use .SelectedItems(1)
End If
End With
Você pode definir e atribuir valor como mostrado abaixo em uma linha. Dei um exemplo de duas variáveis declaradas e atribuídas em uma única linha. se o tipo de dados de várias variáveis for o mesmo
Dim recordStart, recordEnd As Integer: recordStart = 935: recordEnd = 946