在另一个excel文件上执行一个macros

我有下面的macros(macros),而不是使用单元格B4的值重命名工作表,然后为每个工作表创build一个工作簿。)

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文件中的macros并运行它。

我想能够运行德macros,它打开一个对话框,它要求我select我想重命名表和单独的Excel文件? 那可能吗?

我对VBA知之甚less

  1. 获取工作簿的path,以便从FileDialog执行macros。 您可以使用

Application.FileDialog

https://msdn.microsoft.com/en-us/library/office/ff836226.aspx

  1. 打开工作簿并为其设置参考。

设置wb = Application.Workbooks.Open(文件path)

  1. 在当前的子RenameTabs上 ,将Application.ActiveWorkbookThisWorkBookreplace为wb。 此外,您需要正确引用表单,工作表…到wb。 或者,您应确保wb是ActiveWorkbook (wb.Activate) (如果您在切换到另一个正在处理的Excel文件时可以中断该代码)