2

我在一个单独的模块中创建了一个子例程,用于在我正在处理的 Excel 项目中分配一些全局变量。我正在将工作表分配给变量,并且有 9 个工作表/变量,但在运行时 13 上只有 1 个错误,当我检查本地窗口时,我看到分配的类型是“工作表”而不是“变量/对象/工作表#”作为其余的人都这样做。这是一些代码:

Public Cover, Notes, HWIO, IntChn, FbChn, _ 
 DigFb, AnaFb, RemAlm, OGoL As Worksheets

Public Sub AssignVars()
 Set Cover = Sheets("1. Cover")
 Set Notes = Sheets("2. Notes")
 Set HWIO = Sheets("3. HW Input-Output")
 Set IntChn = Sheets("4. Internal Channels")
 Set FbChn = Sheets("5. Funct Block Channels")
 Set DigFb = Sheets("6. Digital Funct Blocks")
 Set AnaFb = Sheets("7. Analog Funct Blocks")
 Set OGoL = Sheets("OGOnline")
 Set RemAlm = Sheets("8. Remote Alarming")
End Sub

错误发生在Set OGoL = Sheets("OGOnline")

查看本地变量,我看到除了 OGoL 之外的所有变量都分配了一个工作表对象。OGoL 那里有“工作表”。它可能正盯着我看,但我不知道为什么我会遇到类型不匹配,该工作表按名称存在。

4

1 回答 1

5

发生这种情况是因为您将 Worksheet 分配Worksheets变量

在前七个变量初始化中没有遇到这种情况的原因是因为您已将这些变量声明为类型变体。为了将这些变量声明为 Worksheet 类型,您必须这样指明:

Public Cover As Worksheet, Notes As Worksheet, HWIO As Worksheet, _
IntChn As Worksheet, FbChn As Worksheet, DigFb As Worksheet, _
AnaFb As Worksheet, RemAlm As Worksheet, OGoL As Worksheet
于 2013-01-29T18:41:43.793 回答