我正在尝试完成这件显然很简单的事情,但不知何故 VBA 一直为我提供奇怪的错误。我想要一个名为样式的全局数组,其中包含以下字符串:设置、标题、注释和直接复制。在代码中:
Public styles(4) As String
Run Code Online (Sandbox Code Playgroud)
直接分配数组对我不起作用,所以我通过子来做到这一点:
sub Populate()
styles(0) = "Settings"
styles(1) = "Titles"
styles(2) = "Comment"
styles(3) = "Direct Copy"
Debug.Print styles
End Sub
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用,因为它给出了编译错误:在 debug.print 行上键入不匹配...预期的结果类似于:(“设置”,“标题”,..)等,就像任何编程语言都会返回一样。
那么如何在 VBA Excel 中获取包含字符串的公共数组,以便我可以在同一模块中跨函数和子函数使用它们?
小智 7
试试这种形式的公共声明和数组元素赋值。
Option Explicit
Public styles As Variant
Sub printStyles()
styles = Array("Settings", "Titles", "Comment", "Direct Copy")
Debug.Print LBound(styles) & "to" & UBound(styles)
Dim i As Long
For i = LBound(styles) To UBound(styles)
Debug.Print styles(i)
Next i
Debug.Print Join(styles, ", ")
End Sub
Run Code Online (Sandbox Code Playgroud)
顺便说一句,如果您继续使用保留字作为公共和私有变量的名称,您可能难以使用保留的样式对象。