首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VBA >

取值解决方法

2012-02-06 
取值如果在当前页使用Ws ActiveSheetSet RngTemp Ws.Range(Cells(1, 1), Cells(3, 3))不会报错。但是我

取值
如果在当前页使用
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)

热点排行