出于某些技术原因,我们不能在文字中使用样式。为了加快一遍又一遍地应用全局属性,我创建了一个可以从简单的xml样式表读取的类。该工作表包含不同的“段落”。每个段落仅存储我们最常使用的段落属性。
我习惯了可以使用动态内存的C ++,并且试图复制动态分配的数组的行为。但是,当我尝试重新调暗时,会收到错误消息“数组有铅的尺寸。”
我对MSDN的研究表明,要重新定义数组必须是Global或在“一般声明上下文”中,这使我认为可能根本不可能在类中做到这一点。
摘自MSDN:
“您只能在过程级别使用ReDim。因此,声明变量的上下文必须是一个过程;它不能成为来源文件,名称空间,接口,类,结构,模块或阻止。“
我已尝试在堆栈溢出中搜索“ Word VBA阵列已确定尺寸”,并遍历了所有3页结果,但无济于事。
private type pStyle 'Definition removed because it's not needed
private Paragraphs(0) As pStyle 'Initially an empty array of paragraphs
后来我具有以下功能
Public Function AddEmpty()
'Create space
count = count + 1
ReDim Preserve Paragraphs(count)
AddEmpty = count
End Function
请让我知道是否有任何想法。我希望不必“估计”每个样式表所需的段落样式数,因为每个文件都不同。
Private Paragraphs(0) As ...
这不是一个空数组,而是具有1元素的fixed length数组。
对于动态数组-您稍后将重新命名-只需将其声明为:
Private Paragraphs() As ...
Dim numbers(10) As Integer
MsgBox (UBound(numbers))
ReDim numbers(4)
MsgBox (UBound(numbers))
上面的代码将抛出已数组化的维。我们可以做到
ReDim numbers(10) As Integer
MsgBox (UBound(numbers))
ReDim numbers(4)
MsgBox (UBound(numbers))