我是VBA的新手,想知道我是否可以将以下声明和作业转换为一行:
Dim clientToTest As String clientToTest = clientsToTest(i)
要么
Dim clientString As Variant clientString = Split(clientToTest)
不幸的是,在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"
您可以使用对象进行排序,如下所示 .
Dim w As New Widget
但不是字符串或变体 .
事实上,你可以,但不是那样 .
Sub MySub( Optional Byval Counter as Long=1 , Optional Byval Events as Boolean= True) 'code... End Sub
并且您可以在调用sub时以不同方式设置变量,或者让它们保持默认值 .
在某些情况下,使用With statement可以避免声明变量的全部需要 .
例如,
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
4 回答
不幸的是,在VBA中没有简写,如果你想让它在一行上以便于阅读,你将得到的最接近的是使用
:
延续字符的纯粹视觉效果;提示(其他答案/评论的摘要):也适用于对象(Excel 2010):
您可以使用对象进行排序,如下所示 .
但不是字符串或变体 .
事实上,你可以,但不是那样 .
并且您可以在调用sub时以不同方式设置变量,或者让它们保持默认值 .
在某些情况下,使用With statement可以避免声明变量的全部需要 .
例如,
这可以改写成