复制并重命名VBA中的Excel ActiveSheet
我正在生成一个访问命令按钮,将数据导出到Excel中。目前,我有这个功能工作,并试图完善它一点,每个出口将数据导出到一个新的工作表,这将有效地是一个ActiveSheet的副本。看起来让我失望的代码是:复制并重命名VBA中的Excel ActiveSheet
'Open workbook
Excel.Workbooks.Open "\\aos03s-fp04\brewsti2$\Alarms\ExportTest - " & Format(Now(), "dd-mm-yyyy") & ".xlsx", True, False
'Copy initial activesheet
ActiveSheet.Copy Before:=Excel.Sheets("Sheet2")
'Rename new copied sheet
ActiveSheet.Name = Me.RAW_TAG
代码在ActiveSheet.Copy函数上失败。有任何想法吗?
试试这个,或者:
Sub CopySheet()
Dim MySheetName As String
MySheetName = "TestSheet" Sheets("MasterSheet").Copy After:=Sheets("MasterSheet")
ActiveSheet.Name = MySheetName
End Sub
这个答案和[另一个](http://stackoverflow.com/a/43323371/1128918)是由同一个用户添加的。我想他们应该合并。用户可以添加替代答案作为第一个答案的更新。 –
我希望的结果是,代码将打开所需的工作簿,然后继续复制活动工作表(未知名称),并将其放在当前工作表之后或之前,然后重命名该工作表。 – Whitey1985
Access有在建的命令按钮过程导出表到Excel。但是,不管怎样,你可以用这一个:
Dim outputFileName As String
outputFileName = CurrentProject.Path & ".xls"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Table1", outputFileName , True
试试这个,或者:
Sub CopySheet()
Dim MySheetName As String
MySheetName = "TestSheet" Sheets("MasterSheet").Copy After:=Sheets("MasterSheet")
ActiveSheet.Name = MySheetName
End Sub
假设这段代码是在MS Access VBA运行,并且Excel
是一个Excel Application
对象,你需要指定ActiveSheet
是Application
对象的属性:
'Open workbook
Excel.Workbooks.Open "\\aos03s-fp04\brewsti2$\Alarms\ExportTest - " & Format(Now(), "dd-mm-yyyy") & ".xlsx", True, False
'Copy initial activesheet
Excel.ActiveSheet.Copy Before:=Excel.Sheets("Sheet2")
'Rename new copied sheet
Excel.ActiveSheet.Name = Me.RAW_TAG
请问您要复制工作表之前存在吗?即工作簿中是否有“Sheet2” - 检查拼写/间距。 –
你得到的实际错误信息是什么? –
我遇到的错误是:运行时错误'91':对象变量或未设置块变量。 – Whitey1985