【发布时间】:2021-12-01 10:55:53
【问题描述】:
点击表单按钮会生成10个数字的随机数组,并通过调用模块'SortMas'对其进行排序
Private Sub CommandButton1_Click()
Dim i As Integer, b(10) As Single
Dim CurRange As Range
ActiveDocument.Paragraphs.Add
ActiveDocument.Content.InsertAfter Text:="Random array:"
ActiveDocument.Paragraphs.Add
For i = 1 To 10
b(i) = Int(10 * Rnd + 10)
ActiveDocument.Content.InsertAfter Text:=Str(b(i)) + " "
Next i
ActiveDocument.Paragraphs.Add
Text:="Sorted array: "
Call SortMas(b(), 10, 2)
ActiveDocument.Paragraphs.Add
For i = 1 To 10
ActiveDocument.Content.InsertAfter Text:=Str(b(i)) + " "
Next i
End Sub
第 4 行错误: ActiveDocument.Paragraphs.Add
【问题讨论】:
-
在顶部添加显式选项以查看未声明的变量。我认为您需要参考 Application.ActiveDocument
-
您会遇到特定的特定错误,因为在 Excel 项目中未定义
ActiveDocument,因为未在模块顶部指定Option Explicit,因此允许代码运行后期绑定隐式Variant/Empty变量。使用Option Explicit,编译器会抱怨ActiveDocument是一个未声明的变量。任何针对Variant/Empty的后期绑定成员调用都会抛出错误 424“需要对象”,因为成员调用仅对对象引用有效。 -
底线,总是在所有模块中指定
Option Explicit。 Rubberduck 会对此发出警告。