在下面的代码中,是否有可能摆脱.Activate
行并且没有得到"运行时错误1004",假设工作表不同于我想要设置的工作表是在运行宏时选择的吗?
Sub PDFbyMarket()
Dim wb1 as Workbook
Dim OBPBudgetByMarket As Range
Set wb1 = Workbooks("PDF")
wb1.Worksheets("OBP_Market_Structure").Activate
Set OBPBudgetByMarket = wb1.Worksheets("OBP_Market_Structure").Range("P9", Range("P9").End(xlDown)
End Sub
答案 0 :(得分:1)
是的,您需要正确限定所有Range调用:
With wb1.Worksheets("OBP_Market_Structure")
Set OBPBudgetByMarket = .Range("P9", .Range("P9").End(xlDown))
End With
请注意两个范围调用之前的句号。
答案 1 :(得分:0)
你没有完全限定第二个Range
,因此1004。
您可以使用:
Set OBPBudgetByMarket = wb1.Worksheets("OBP_Market_Structure").Range("P9", wb1.Worksheets("OBP_Market_Structure").Range("P9").End(xlDown))
或者更好的是:
With wb1.Worksheets("OBP_Market_Structure")
Set OBPBudgetByMarket = .Range("P9", .Range("P9").End(xlDown))
End With