Vba 将工作表设置为范围而不激活/选择它
在以下代码中,如果在运行宏时选择了与我要设置的工作表不同的工作表,是否可以去掉Vba 将工作表设置为范围而不激活/选择它,vba,excel,Vba,Excel,在以下代码中,如果在运行宏时选择了与我要设置的工作表不同的工作表,是否可以去掉.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
.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
是的,您需要正确确认所有范围呼叫:
With wb1.Worksheets("OBP_Market_Structure")
Set OBPBudgetByMarket = .Range("P9", .Range("P9").End(xlDown))
End With
请注意两次范围调用之前的句号。您没有完全限定第二次
范围,因此为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