提取工作表以分离文件/可变工作表名称/循环

我有一个约60张电子表格,每个星期他们是相同的+有时有一个新的表。

我正在试图将macros导出到Excel文件中指定一个单独的文件的工作表。 Colum C包含工作表名称,E列包含文件path。

这是迄今为止我所做的代码,我很难从单元格中使用可变表单名称并保存文件

Sub SavingweekEnd() Dim ABC As String Application.DisplayAlerts = False ChDir _ "S:\ Workbooks.Open Filename:= _ "S:\BD1.xls" ActiveWindow.ScrollWorkbookTabs Position:=xlLast x = 5 For x = 5 To Range("h1").Value ABC = Cells(x, 3).Value Sheets(ABC).Select Sheets(ABC).Copy ActiveWorkbook.SaveAs Filename:=Cells(x, 5).Value, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False ActiveWindow.Close Next x ActiveWorkbook.Save ActiveWindow.Close End Sub 

您的单元格对象不是完全限定的,所以它们将始终引用ActiveSheetActiveSheet许多不是您可能要使用的工作表。 它甚至可能不在你期望的工作簿中。

这是你正在尝试?

我的假设

  1. Range("H1").Value有一个有效的数字
  2. Cells(i, 3).Value具有有效的工作表名称
  3. 列E有完整的文件path和名称。 如果不是,则修改thisws.Cells(i, 5).Value相应的值

未经testing

 Sub SavingMonthEndCostsheetsSJPUT() Dim thisWB As Workbook, thatWb As Workbook Dim thisws As Worksheet Dim ShtName As String Dim i As Long Set thisWB = ThisWorkbook '~~> Change this to the relevant sheet name Set thisws = thisWB.Sheets("Sheet1") For i = 5 To thisws.Range("H1").Value ShtName = thisws.Cells(i, 3).Value thisWB.Sheets(ShtName).Copy Set thatWb = ActiveWorkbook thatWb.SaveAs Filename:=thisws.Cells(i, 5).Value, FileFormat:=xlNormal DoEvents thatWb.Close (False) DoEvents Next i End Sub