【发布时间】:2018-05-15 21:47:55
【问题描述】:
首先,请原谅我在技术上不正确的任何术语……
我编写了一个宏,该宏在选定商店的部门之间循环,为每个部门创建一个单独的工作表,然后以 PDF 格式发布,每个部门在其自己的页面上。根据选择的商店,部门的数量可以是 1、11 或 12。我在 Excel 工作簿中使用命名范围 (rngDeptX) 来保存部门名称,然后我用它来填充 VBA 中的数组。对于 11 或 12 个部门的实例,该过程按预期工作,但我收到 1 个部门实例的类型不匹配错误。
相关的代码行应该在下面...
arrSheets 数组在后面使用,并没有导致任何错误。它填充了与数组 d 相同的值,数组 d 是用于循环遍历部门名称的机制。如前所述,如果部门数为 11 或 12,则该过程按预期工作。我单步执行代码,当我在收到类型不匹配错误时将鼠标悬停在其上时,表达式 d = Range("rngDeptX") 返回正确的部门.如果数组只有一项,我必须做些什么不同的事情吗?我已经搜索过,但在类似的问题上都找不到。 感谢您的帮助。
Dim arrSheets() As String, DptCnt As Long 'array of Department names, size of array
'determine required size of arrays, set size of arrays
DptCnt = WorksheetFunction.CountA(Range("rngDeptX"))
ReDim arrSheets(1 To DptCnt)
Dim d() As Variant
d = Range("rngDeptX") <= this is where the error occurs
【问题讨论】: