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如何访问呢??
...全文
252 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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"

这样就简洁一些

2,462

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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