这里的VBA相当新,但已经管理了这个循环通过大量工作表的脚本,在整个过程中完成了一个sumif函数 - 存储然后在每个循环后打印。有65张,有些可能会在将来添加,所以我在命名表(“tab_ref [Tab]”)中列出了每个选项卡名称,并将其用作循环的参考。
我遇到了一个非常奇怪的错误。当我将纸张范围设置为表格中列出的前4张纸张(“H15:H18”)时,该功能完美无缺,但是当我尝试遍历整个范围(或者甚至只是一个 - “H15:H19”)时! )我在代码中进一步出现类型不匹配错误。任何人都可以看到导致此错误的原因吗?修复或任何建议将不胜感激。谢谢!
Sub ClusterLevel()
Dim inputcell As Range, itemrange As Range, sheetrange As Range, _
FullRow As Range, Items As Range, CalcRange As Range, printCalc As Range
Set inputcell = Sheets("Calculations").Range("C10")
Set itemrange = Sheets("Calculations").Range("A21:A22")
Set sheetrange = Sheets("Reference Sheet").Range("H15:H19") 'Sheets listed here. "H15:H18" WORKS - BUT "tab_ref[Tab]" DOESN'T!!
i = 21
For Each entry In itemrange
sumState = 0
For Each sheet In sheetrange
Set FullRow = Sheets(sheet.Value).Range("A5:EE5")
Set Items = Sheets(sheet.Value).Range("A6:A500")
For Each Cell In FullRow
If Cell.Value = inputcell.Value Then 'TYPE MISMATCH HERE
With FullRow
Set SumRange = Range(.Cells(Cell.Row - 3, Cell.Column), .Cells(520, Cell.Column))
sumState = sumState + WorksheetFunction.SumIf(Items, entry, SumRange)
End With
End If
Next Cell
Next sheet
Set printCalc = Sheets("Calculations").Cells(i, 4)
printCalc = sumState
i = i + 1
Next entry
End Sub
答案 0 :(得分:0)
对主要工作表循环进行以下修改。
appAPI.ready(function($) {
appAPI.browserAction.setResourceIcon('buttonIcon.jpg');
});
如果找不到,将创建一个工作表。我仍然不清楚产生错误的是什么线,但这是我最好的猜测。如果在工作表队列的末尾创建了新工作表,则需要检查紧密存储的工作表名称。如果没有,请提供产生错误的实际代码行。
答案 1 :(得分:0)
FullRow中的单元格是在每个选项卡上使用vlookup创建的,有些是返回N / A.引用时抛出错误。
通过转换为字符串来轻松修复:
If CStr(Cell.Value) = CStr(inputcell.Value Then)
感谢所有人的帮助!