我有一张大约60张的电子表格,每周都是相同的+有时会有一张新的表格。
我正在尝试制作将工作表导出到Excel文件中指定的单独文件的宏。 Colum C包含工作表名称,E列包含文件路径。
这是我到目前为止所做的代码,我很难从单元格和保存文件中使用可变图纸名称
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
答案 0 :(得分:1)
您的单元格对象不是完全限定的,因此它们将始终引用ActiveSheet
和ActiveSheet
许多不是您可能想要使用的工作表。它甚至可能不在您期望的工作簿中。
这是你在尝试的吗?
我的假设
Range("H1").Value
的号码有效Cells(i, 3).Value
具有有效的工作表名称thisws.Cells(i, 5).Value
<强>未测试强>
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