当前位置: 代码迷 >> VBA >> 取值解决方法
  详细解决方案

取值解决方法

热度:8323   发布时间:2013-02-26 00:00:00.0
取值
如果在当前页使用
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)
  相关解决方案