我有以下宏 (宏比使用单元格B4的值重命名工作表,然后为每个工作表创建一个工作簿。)
Sub RenameTabs()
'UpdatebyTony
For x = 1 To Sheets.Count
If Worksheets(x).Range("B4").Value <> "" Then
Sheets(x).Name = Worksheets(x).Range("B4").Value
End If
Next
Dim xPath As String
xPath = Application.ActiveWorkbook.Path
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each xWs In ThisWorkbook.Sheets
xWs.Copy
Application.ActiveWorkbook.SaveAs Filename:=xPath & "\" & xWs.Name & ".xls"
Application.ActiveWorkbook.Close False
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
但这意味着我必须在每个excel文件中复制宏并运行它。
我希望能够运行de macro并打开一个对话框,要求我选择要重命名工作表并分开的excel文件?这可能吗?
我对VBA知之甚少
答案 0 :(得分:1)
Application.FileDialog
https://msdn.microsoft.com/en-us/library/office/ff836226.aspx
设置wb = Application.Workbooks.Open(文件路径)
(wb.Activate)
(如果在处理时切换到另一个excel文件,则可以破解代码)