如果在当前页使用
Ws = ActiveSheet
Set RngTemp = Ws.Range(Cells(1, 1), Cells(3, 3))不会报错。
但是我使用不是当前页就会报错。
比如Ws = Worksheets(3)(不是当前页)
Set RngTemp = Ws.Range(Cells(1, 1), Cells(3, 3))
有什么好办法不?
其实我要解决的的是在其他新打开的excel做的取值操作,所以
Activate,Select 方法没办法用。
Set ex = CreateObject("Excel.Application")
Set WbSource = ex.Workbooks.Open(GStrFilePath, True, True)
Set RngTemp = Ws.Range(Cells(1, 1), Cells(3, 3))
执行到第三句就报错,RngTemp 不能用。
------解决方案--------------------------------------------------------
把
Set RngTemp = Ws.Range(Cells(1, 1), Cells(3, 3))
改为
Set RngTemp = Ws.Range(Ws.Cells(1, 1), Ws.Cells(3, 3))
------解决方案--------------------------------------------------------
给个示例代码
- VB code
Sub CreateExcelApplication() GStrFilePath = "1.xls" Set ex = CreateObject("Excel.Application") ex.Visible = True Set WbSource = ex.Workbooks.Open(GStrFilePath, True, True) WbSource.Worksheets(3).Activate Set ws = ex.ActiveSheet With ws Set RngTemp = .Range(.Cells(1, 1), .Cells(3, 3)) End With ex.QuitEnd Sub
------解决方案--------------------------------------------------------
Set RngTemp = Ws.Range(Ws.Cells(1, 1), Ws.Cells(3, 3))
Cells(3, 3) --> activesheet.Cells(3, 3)