关于通过VBA代码来对其他未打开的工作簿进行操作的问题
我想写了一个代码,将当前打开的A工作簿的数据写入另外一个B工作簿中,但是不打开B工作簿。我知道可以用getobject来实现:在不打开B工作簿的情况下将B工作簿的数据引用...
我想写了一个代码,将当前打开的A工作簿的数据写入另外一个B工作簿中,但是不打开B工作簿。
我知道可以用getobject来实现:在不打开B工作簿的情况下将B工作簿的数据引用至A工作簿中, 但是反过来,能不能在不打开B工作簿的前提下将数据写入到B工作簿中呢? 急急急~~~
高手如果可以回答,麻烦按这个例子来写出简单的代码:将A工作簿的A1单元格的数据写入至B工作簿的B2单元格中,但是并不在后台或界面中打开B工作簿
重重有赏~~~ 展开
我知道可以用getobject来实现:在不打开B工作簿的情况下将B工作簿的数据引用至A工作簿中, 但是反过来,能不能在不打开B工作簿的前提下将数据写入到B工作簿中呢? 急急急~~~
高手如果可以回答,麻烦按这个例子来写出简单的代码:将A工作簿的A1单元格的数据写入至B工作簿的B2单元格中,但是并不在后台或界面中打开B工作簿
重重有赏~~~ 展开
1个回答
展开全部
getobject其实也打开了文件的,只是新窗口隐藏而已,理论上查看和修改任何文件都必须得先打开。
用getobject不变调试,建议用常规方法处理,可以打开的时候停止屏幕显示,例如:
Application.ScreenUpdating = False
Set wb = Workbooks.Open("b.xls")
wb.Sheets(1).Cells(2, 2) = "xxx" '只是一个举例,因为不知道你现有变量的名称,怎么操作都是可以的
wb.save
wb.Close
Application.ScreenUpdating = True
用getobject不变调试,建议用常规方法处理,可以打开的时候停止屏幕显示,例如:
Application.ScreenUpdating = False
Set wb = Workbooks.Open("b.xls")
wb.Sheets(1).Cells(2, 2) = "xxx" '只是一个举例,因为不知道你现有变量的名称,怎么操作都是可以的
wb.save
wb.Close
Application.ScreenUpdating = True
更多追问追答
追问
谢谢你,我目前代码也是这么写,不过就没有 Set wb = Workbooks.Open("b.xls")
这一句。
然后运行之后,被写入的文件(B工作簿)再也打不开了,提示说存在隐含的风险(其实是打得开,只是界面怎么也找不到这个工作簿B了)
追答
调试程序的时候把Application.ScreenUpdating = False语句注释了,观察具体每个步骤的执行情况。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询