【发布时间】:2014-08-08 23:52:46
【问题描述】:
我有以下代码制作活动工作簿的副本并为每个副本赋予不同的名称。它运作良好,但我真的需要运行代码的原始工作表才能保持活动状态。
如果我改用SaveCopyAs 函数,则复制的文件没有正确的文件格式(.xlsm),并且您不能像saveAs 函数中那样将文件格式指定为参数。
http://msdn.microsoft.com/en-us/library/bb178003%28v=office.12%29.aspx
http://msdn.microsoft.com/en-us/library/office/ff841185%28v=office.15%29.aspx
Sub makeCopies()
Dim name As Range, team As Range
Dim uName As String, fName As String, fFormat As String
Dim location as string, nName as string
location ="c:\test\"
nName = "Test - Team "
Set team = Names("Team").RefersToRange
For Each name In team
uName = nName & name.Value
fName = location & uName
fFormat = ThisWorkbook.FileFormat
ActiveWorkbook.SaveAs FileName:=fName, FileFormat:=fFormat
Next name
End sub
我能想到的最好方法是先用saveCopyAs 制作副本,然后访问每个文件,用saveAs 将其保存为正确的文件格式,然后关闭它,但这意味着双重工作,我会真的很讨厌这样做。有没有更聪明的方法?
【问题讨论】:
-
好吧,碰巧我确实这样做了。这正是 FileFormat 参数的作用,请参考我在帖子中的第二个链接和msdn.microsoft.com/en-us/library/office/…