新浪博客

Excel把一个工作簿内容写入另一个工作簿中(VBA改进版)

2020-06-30 08:58阅读:
前几天写了一个VBA代码,用于把一个工作簿内容写入另一个工作簿中。这个代码一般情况下可用,但我发现有时会出现VBA的activesheet.pastste报错,导致写入失败,看代码应该是对的,查不到原因。后上网查了一下,发现遇到此类问题的人不止我一个人,主要原因在于此Range('...').Copy和Range('...').Paste二行代码容易产生不可见错误,应改成一句方式:Range('...').Copy Range('...')。按此修改后,不再出现activesheet.pastste报错,成功。以下是改进后的代码:
改进后的VBA代码如下:
Sub 月考核表内容写入到个人业务清单汇总表()
'功能:把一个工作簿中指定表内容写入另一个工作簿中的指定表中去
'作用:把每月的保费明细台帐数据复制到全年业务汇总表的相应月份工作表中

Dim fname As String
Dim wb As Workbook
Dim curSheet As String
'设置第二个工作薄的文件路径
fpath = 'd:\\月保费报表\\个人汇总表\\' '第二个工作簿路径
fname = '个人全年业务清单汇总表.xlsm' '第二个工作簿名字

curSheet = '1' '第二个工作簿指定工作表名

Set wb = Workbooks.Open(fpath + fname) '打开第二个工作簿
ThisWorkbook.Activate '激活代码所在工作簿中的当前工作表
Rows('4:6').Select
Range(Selection, Selection.End(xlDown)).Select
'从数据区第一行,即第4行开始选择,一直到最后一行
Selection.Copy wb.Worksheets(curSheet).Range('A3')
'把第一个工作簿当前工作表的内容复制到第二个工作簿的工作表中的A3单元格中
wb.Save '工作簿保存
wb.Close '工作簿关闭
Range('E8').Select

End Sub
注:以上代码在win10、office2019环境下调试通过。

我的更多文章

下载客户端阅读体验更佳

APP专享