加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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

(2020-06-30 08:58:41)
分类: Excel相关
     前几天写了一个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环境下调试通过。


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有