在 vba 中复制和重命名 Excel ActiveSheet

Posted

技术标签:

【中文标题】在 vba 中复制和重命名 Excel ActiveSheet【英文标题】:Copy and Rename Excel ActiveSheet in vba 【发布时间】:2017-04-10 12:17:42 【问题描述】:

我在 access 中生成一个命令按钮,它将数据导出到 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 函数上失败。有什么想法吗?

【问题讨论】:

您之前尝试复制的工作表是否存在?即您的工作簿中是否有“Sheet2” - 检查拼写/间距。 您收到的实际错误信息是什么? 我遇到的错误是:运行时错误'91':对象变量或未设置块变量。 【参考方案1】:

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

【讨论】:

【参考方案2】:

试试这个,或者:

Sub CopySheet()
Dim MySheetName As String 
MySheetName = "TestSheet" Sheets("MasterSheet").Copy After:=Sheets("MasterSheet") 
ActiveSheet.Name = MySheetName
End Sub

【讨论】:

这个答案和one other 是由同一个用户添加的。我想他们应该合并。用户可以添加替代答案作为对第一个答案的更新。 我想要的结果是代码打开所需的工作簿,就像这种情况一样,然后继续复制活动工作表(名称未知)并将其放在当前工作表之后或最后一个工作表之前,然后重命名此工作表。【参考方案3】:

假设此代码在 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

【讨论】:

以上是关于在 vba 中复制和重命名 Excel ActiveSheet的主要内容,如果未能解决你的问题,请参考以下文章

excel vba复制数据范围,打开新的xlsx文件重命名表并保存

MS Access VBA循环查询和重命名文件

iphone 项目 - 在 xcode 4.3 中复制和重命名

如何在 Linux 中批量移动复制追加和重命名文件

文件复制和重命名

如何在 Android Studio 3.4 中复制和重命名项目?