我正在编写一个设置这两个范围的代码:
Set ColorSAP = SAP_Comparison.Range("C3:AG19")
Set ColorPlan = Production_Plan.Worksheets("Schedule").Range(Cells(4,
MonthS), Cells(20, (MonthE - 1)))
MonthS
和MonthE
是整数。
Production_plan
是一个工作簿。
SAP_Comparison
是一个工作簿。
我不知道为什么我第二次却出现错误,但第一次却没有,因为它们非常相似。 我什至测试了更简单的情况,这种用法确实有效。
Error: Run-Time '1004'
Application-defined or object-defined error.
我该如何解决?
答案 0 :(得分:2)
不合格的单元格引用ActiveSheet,如果不是“时间表”,则会引发错误。
您需要类似的东西
With Production_Plan.Worksheets("Schedule")
Set ColorPlan = .Range(.Cells(4, MonthS), .Cells(20, (MonthE - 1)))
End With
或
Dim sht As Worksheet
Set sht = Production_Plan.Worksheets("Schedule")
Set ColorPlan = sht.Range(sht.Cells(4, MonthS), sht.Cells(20, (MonthE - 1)))
What is the default scope of worksheets and cells and range?
答案 1 :(得分:0)
您可以使用Cells来获取地址,并通过以下方式向Range馈送:
Set ColorPlan = Production_Plan.Worksheets("Schedule").Range(Cells(4, MonthS).Address & “:” & Cells(20, (MonthE - 1)).Address)
这样,您只有一个“ true” Range对象并且完全合格