中易网

如何用VBA实现跨工作簿的复制粘贴?高手给看看代码

答案:3  悬赏:0  
解决时间 2021-01-08 07:50
如何用VBA实现跨工作簿的复制粘贴?高手给看看代码
最佳答案
Set tt = Workbooks.Open(ThisWorkbook.Path & "\" & "汇总" & ".xls")
这一句应在FOR的外面,否则两次打开汇总表。

tt.Worksheets(CStr(1)).Range(1, n)
叫“1”的表即CStr(1)不知你有没,Range(1, n) ,这表述错了,应为Cells(1,n)。

我修正一下的代码,你在一个同文件夹下建3个文件,1.xls,2.xls,3.xls。表3是汇总表。再建一个BOOK1表,也存在该文件夹,在此表放入下面代码,执行则可。
Sub 按钮1_单击()

On Error Resume Next
Dim i, tt, ss, n
Application.ScreenUpdating = False
n = 1
Set tt = Workbooks.Open(ThisWorkbook.Path & "\" & "3" & ".xls")
For i = 1 To 2
Set ss = Workbooks.Open(ThisWorkbook.Path & "\" & i & ".xls")
ss.Worksheets("Sheet1").Range("F4:F170").Copy tt.Worksheets("Sheet1").Cells(1, n)
n = n + 1
ss.Close
Next i
Application.ScreenUpdating = True

End Sub追问由于我那个表格里面带函数,如何实现 选择性粘贴----数值? 用代码实现

而且,没次循环中,SS.close,之后,还会提示,是否要保存?如何避免呢追答ss.Worksheets("Sheet1").Range("F4:F170").Copy tt.Worksheets("Sheet1").Cells(1, n)
改为:
ss.Worksheets("Sheet1").Range("F4:F170").Copy
tt.Worksheets("Sheet1").Cells(1, n).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

下面这句相应替换
ss.Close SaveChanges:=False
只是有个小问题,复制的剪贴板会提示清除。

全部代码:貌似可以解决不出现提示
Sub 按钮1_单击()
On Error Resume Next
Dim i, tt, ss, n
Application.ScreenUpdating = False
n = 1
Set tt = Workbooks.Open(ThisWorkbook.Path & "\" & "3" & ".xls")
For i = 1 To 2
Set ss = Workbooks.Open(ThisWorkbook.Path & "\" & i & ".xls")
ss.Worksheets("Sheet1").Range("F4:F170").Copy
tt.Worksheets("Sheet1").Cells(1, n).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
n = n + 1
Application.CutCopyMode = False
ss.Close SaveChanges:=False
Next i
Application.ScreenUpdating = True
End Sub追问ss.Worksheets("RNC2166 KPI").Range("F4:F26,F30:F36,F44,F52,F58,F66,F74:F89,F92:F170").Copy

tt.Worksheets("Sheet1").Cells(4, n + 2).Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

n = n + 1
我的复制是跨 RANGE复制,所以我的区域是多个,这样一来,也运行不了,不知为何?
全部回答
第一句是出现错误继续
第二句是禁止屏幕刷新
第三局是恢复屏幕刷新
后两句都是为了加快运行速度
要想不出现提示.改成这样:
Sub 按钮1_单击()
On Error Resume Next
Dim i, tt, ss, n
Application.DisplayAlerts = True '禁止提示.
Application.ScreenUpdating = False
n = 1
Set tt = Workbooks.Open(ThisWorkbook.Path & "\" & "3" & ".xls")
For i = 1 To 2
Set ss = Workbooks.Open(ThisWorkbook.Path & "\" & i & ".xls")
ss.Worksheets("Sheet1").Range("F4:F170").Copy
tt.Worksheets("Sheet1").Cells(1, n).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
n = n + 1
Application.CutCopyMode = False
ss.Close SaveChanges:=False
Next i
tt.close
set tt =nothing
Application.ScreenUpdating = True
Application.DisplayAlerts = false '恢复提示
End Sub
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
山东经纬物流地址好找么,我有些事要过去
C#调用C++的dll库怎么传递结构体中不定长度的
带哪字的成语有哪些
如何理解:醉叹红颜 这个成语
《巫师3》是像刺客信条那样的沙盒游戏吗 这款
我想去船上上班,要出海的。请问船上冷吗。冬
js 如何给 jsp中的 id动态赋值?
某水泥厂4月份生产水泥250吨,超过计划50吨,
如何在百度百科上成功创建APP的词条?
税务干部学校 是干什么的
中国拥有的核弹,当量一般是多大的,用100颗
明年有个儿子,想给孩子启个好名字,希望帮助
各种室内门是按平米论价还是论套批卖
E形变压器制作,线径,砸数计算方法!万分感
爱关杰是什么。2015男篮亚锦赛广告牌的广告
推荐资讯
急求介绍高中英语老师的英语作文
中石化森美(欣达加油站)地址有知道的么?有点
新手求问 12费8/8的山岭巨人 有用吗
丈夫不在和父亲做了 - 百度
硬盘录像机中D1和PAL是关系,有什么区别
机场航班号一样,但不同日期的出发时间会不一
遇见一个外表和内心丑陋的女人有多恐怖
中国邮政储蓄银行(甘江镇支行)怎么去啊,我要
厦门到台湾金门怎么去
(1)4x-3(20-x)=6x 求这题的解
53岁属兔子的人是什么命
为什么乳液聚合可以同时提高聚合速率和聚合度
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?