VBA的难题,如何在一个宏里访问另一个文件的cell

zhangziyu 2005-10-15 09:54:33
比如:文件1.xls,文件2.xls
我可以在宏中用:
Cells(1, 2).Select
ActiveCell.FormulaR1C1 = "=[文件2.xls]Sheet1!R21"

但如果不要公式,只是要赋值而已,象如下这样做:
ActiveCell.Text = "1234"

对本文件的sheet可以很容易这样写
ActiveCell.Text = sheet2!R1C1

但对另一个文件的sheet如何访问呢??
...全文
213 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
lvanjie 2005-12-01
文件1.xls,文件2.xls 都打开的状态下可以使用如下轻松实现:
(假如在文件1.xls中的宏,通过宏获取文件2.xls中 Sheet1!中(W,U)单元格的数据来存放在文件1.xls的 Sheet1中(X,Y)单元格)

X=2 '指定要存入的单元格X值假设等于2
Y=3 '指定要存入的单元格y值假设等于3
W=2 '指定要读取的单元格y值假设等于2
U=3 '指定要读取的单元格y值假设等于3 这样的话可以采用循环来读取大量的数据
Workbooks("文件1.xls").Sheets("Sheet1").Cells(X,Y)=Workbooks("文件2.xls").Sheets("Sheet1").Cells(W,U)
只是要赋值而已,象如下这样做就可:
Workbooks("文件2.xls").Sheets("Sheet1").Cells(2,3) = "1234"
回复
lvanjie 2005-11-30
文件1.xls,文件2.xls 都打开的状态下可以使用如下轻松实现:
(假如在文件1.xls中的宏,通过宏获文件2.xls中 Sheet1!中的数据来放在文件1.xls的 Sheet1中)

Workbooks("文件1.xls").Sheets("Sheet1").Cells(X,Y)=Workbooks("文件1.xls").Sheets("Sheet1").Cells(W,U)
回复
DawnPine 2005-11-07
还不是一样的
先打开workbook
再打开sheet
最后操作

对录制的宏可以学习,但不能依赖它

Cells(1, 2).Select
ActiveCell.FormulaR1C1 = "=[文件2.xls]Sheet1!R21"

这样的句子有明显录制的味道
Cells(1, 2).FormulaR1C1 = "=[文件2.xls]Sheet1!R21"

这样就简洁一些
回复
相关推荐
发帖
VBA
创建于2007-09-28

2063

社区成员

VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
申请成为版主
帖子事件
创建了帖子
2005-10-15 09:54
社区公告
暂无公告