含有公式的模板文件(指调整好的单元表sheet)当不进行复制粘贴到其他文件中使用时,需要对模板文件引用的原始数据进行更新,以达到复用目的。手动更新也是麻烦,特编写命令选择文件即可,该命令是主要是将选择的文件中“目标单元表“的数据复制到当前workbook中(即模板文件所在的workbook)。其中硬编码了目标单元表名采用sheet0,应根据实际情况修改。
Sub OpenNextFile()
Application.ScreenUpdating = False
myDestbook = ActiveWorkbook.Name
'目标位置的单元表名默认采用sheet0
myDestsheetname = ActiveWorkbook.Sheets("sheet0").Name
'清除当前目标单元表内容
With ActiveWorkbook.Sheets(myDestsheetname).UsedRange
.ClearContents
.Interior.Pattern = xlNone
End With
'载入原始数据所在的文件
ipath = ActiveWorkbook.Path & "\"
ChDrive ipath
ChDir ipath
'默认过滤为xlsx文件
fileToOpen = Application.GetOpenFilename("Excel2003文件,*.xls,Excel文件,*.xlsx", 1)
Set wb = Workbooks.Open(fileToOpen, , True)
With wb.Sheets(myDestsheetname).UsedRange
c = .Column + .Columns.Count - 1
r = .Row + .Rows.Count - 1
End With
wb.Sheets(myDestsheetname).[a1].Resize(r, c).Copy Workbooks(myDestbook).Sheets(myDestsheetname).[a1]
wb.Close False
Application.ScreenUpdating = True
End Sub
其实,也可以对模板文件进行复制粘贴使用。但应该修正粘贴后的模板文件公式,方法有三,推荐一二做法:
Last Modified·2021年6月22日 12:42方法有三:
方法1
复制AAA的sheet2到BBB的sheet2。
菜单》数据》编辑链接》选中AAA》更改源》到盘上选BBB本身文件。方法2
复制AAA的sheet2到BBB的sheet2,再将BBB公式中的[AAA.XLSX]替换为空。
方法3
先在AAA文件中,把Sheet2里的"="替换为一个特殊的字符串,比如"iamlaosong",这样公式就变成字符串了,复制AAA的sheet2到BBB的sheet2,再把"iamlaosong"替换为"=",还原成公式。
需要注意的是,上述方法处理过程中,公式中引用的工作表在新文件中一定要存在。
————————————————
版权声明:本文为CSDN博主「宋哥」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/iamlaosong/article/details/78465775
您尚未登录,请先登录才能评论。