关于磨刀不误砍柴工一记(续)

linxiaoyun 2021.6.22 12:29 459 0
软件应用 Excel应用

含有公式的模板文件(指调整好的单元表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

其实,也可以对模板文件进行复制粘贴使用。但应该修正粘贴后的模板文件公式,方法有三,推荐一二做法:

方法有三:

方法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

Last Modified·2021年6月22日 12:42

暂无评论

您尚未登录,请先才能评论。