Can I simultaneously declare and assign a variable in VBA?

后端 未结 5 1744
[愿得一人]
[愿得一人] 2020-12-01 02:24

I\'m new to VBA and want to know if I can convert the following declaration and assignment into one line:

Dim clientToTest As String
clientToTest = clientsTo         


        
相关标签:
5条回答
  • 2020-12-01 03:02

    There is no shorthand in VBA unfortunately, The closest you will get is a purely visual thing using the : continuation character if you want it on one line for readability;

    Dim clientToTest As String:  clientToTest = clientsToTest(i)
    Dim clientString As Variant: clientString = Split(clientToTest)
    

    Hint (summary of other answers/comments): Works with objects too (Excel 2010):

    Dim ws  As Worksheet: Set ws = ActiveWorkbook.Worksheets("Sheet1")
    Dim ws2 As New Worksheet: ws2.Name = "test"
    
    0 讨论(0)
  • 2020-12-01 03:06

    You can sort-of do that with objects, as in the following.

    Dim w As New Widget
    

    But not with strings or variants.

    0 讨论(0)
  • 2020-12-01 03:06

    You can define and assign value as shown below in one line. I have given an example of two variables declared and assigned in single line. if the data type of multiple variables are same

     Dim recordStart, recordEnd As Integer: recordStart = 935: recordEnd = 946
    
    0 讨论(0)
  • 2020-12-01 03:08

    In some cases the whole need for declaring a variable can be avoided by using With statement.

    For example,

        Dim fd As Office.FileDialog
        Set fd = Application.FileDialog(msoFileDialogSaveAs)
        If fd.Show Then
            'use fd.SelectedItems(1)
        End If
    

    this can be rewritten as

        With Application.FileDialog(msoFileDialogSaveAs)
          If .Show Then
            'use .SelectedItems(1)
          End If
        End With
    
    0 讨论(0)
  • 2020-12-01 03:11

    in fact, you can, but not that way.

    Sub MySub( Optional Byval Counter as Long=1 , Optional Byval Events as Boolean= True)
    
    'code...
    
    End Sub
    

    And you can set the variables differently when calling the sub, or let them at their default values.

    0 讨论(0)
提交回复
热议问题