我正在尝试创建一个没有公式的所有活动工作簿(甚至是非宏启用的工作簿)的重命名副本,可能是通过粘贴值而不修改图像。我正在使用Excel 2007。
我的过程理想情况是:
1)创建一个do,同时有xls文件循环将所有xls文件转换为xlsm。一个可能的添加是存储的数组A)工作表名称B)其选项卡名称及其状态
2)为每个或for循环运行一个自动粘贴所有活动工作表的值,包括那些带有图形或其他图像的文本,这些文档具有相同的名称,并且最后添加了少量添加。
3)将包含值的新命名文件转换为xls。
我尝试这样做时遇到的一个问题与链接有关。初始工作表的公式包含不会自动更新的链接。当我这样做时,原始工作表中带有链接引用的公式往往会被破坏。
以下是我为粘贴值找到的一般宏:
Sub test()
Dim MyNames As Range, MyNewSheet As Range
Set MyNames = Range("R5").CurrentRegion ' load contigeous range into variable
For Each MyNewSheet In MyNames.Cells ' loop through cell children of range variable
Sheets.Add.Name = MyNewSheet.Value
Next MyNewSheet
MyNames.Worksheet.Select ' move selection to original sheet
End Sub
答案 0 :(得分:0)
我认为这就是你所要求的:
Sub test()
Dim wb As Workbook
Dim ws As Worksheet
Dim counter As Integer
Dim filePath As String
Set wb = ActiveWorkbook
countet = 1
filePath = "c:/" 'Enter your destination folder here
For Each ws In wb.Sheets
Sheets("Sheet1").Copy
With ActiveSheet.UsedRange
.Value = .Value
End With
ActiveWorkbook.SaveAs filePath & counter & ".xlsx", FileFormat:=51
counter = counter + 1
Next ws
End Sub
这主要取自here。
计数器有点破解,以确保文件不会全部保存为相同的名称并相互覆盖。也许有一种更合适的方法可以解决这个问题。