取值

子龙奶爸 2010-03-01 02:13:23
如果在当前页使用
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 不能用。
...全文
90 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
子龙奶爸 2010-03-04
  • 打赏
  • 举报
回复
谢谢大侠们,是这样的。
宋翔 2010-03-02
  • 打赏
  • 举报
回复

Set RngTemp = Ws.Range(Cells(1, 1), Cells(3, 3))
改为
Set RngTemp = Ws.Range(Ws.Cells(1, 1), Ws.Cells(3, 3))
shan1119 2010-03-02
  • 打赏
  • 举报
回复
Set RngTemp = Ws.Range(Ws.Cells(1, 1), Ws.Cells(3, 3))

Cells(3, 3) --> activesheet.Cells(3, 3)
cphj 2010-03-02
  • 打赏
  • 举报
回复
给个示例代码
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.Quit
End Sub
贝隆 2010-03-01
  • 打赏
  • 举报
回复
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
子龙奶爸 2010-03-01
  • 打赏
  • 举报
回复
UPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUP

5,173

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 Office开发/ VBA
社区管理员
  • Office开发/ VBA社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧