我可以同时在VBA中声明和分配变量吗?

时间:2010-07-15 13:47:11

标签: vba variable-declaration

我是VBA的新手,想知道我是否可以将以下声明和作业转换为一行:

Dim clientToTest As String
clientToTest = clientsToTest(i)

Dim clientString As Variant
clientString = Split(clientToTest)

5 个答案:

答案 0 :(得分:210)

不幸的是,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"

答案 1 :(得分:19)

您可以使用对象进行排序,如下所示。

Dim w As New Widget

但不是字符串或变体。

答案 2 :(得分:1)

事实上,你可以,但不是那样。

Sub MySub( Optional Byval Counter as Long=1 , Optional Byval Events as Boolean= True)

'code...

End Sub

您可以在调用sub时以不同方式设置变量,或者让它们保持默认值。

答案 3 :(得分:1)

您可以如下一行中所示定义和分配值。我给出了两个声明并在单行中分配的变量的示例。如果多个变量的数据类型相同

 Dim recordStart, recordEnd As Integer: recordStart = 935: recordEnd = 946

答案 4 :(得分:0)

在某些情况下,使用here可以避免声明变量的全部需求。

例如,

    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