【问题标题】:Copying a source sheet to another workbook where source sheet name changes将源工作表复制到源工作表名称更改的另一个工作簿
【发布时间】:2019-03-20 11:37:08
【问题描述】:

我正在尝试将第二张工作表从工作簿 2 复制到工作簿 1(我从中运行宏的打开工作簿)。

第二张表的名称不时变化。

代码复制第二张表,假设名称永远不会改变。

Dim wb1 As Workbook
Set wb1 = ActiveWorkbook

Dim wb2 As Workbook
folder = Application.GetOpenFilename("Excel.xlsx (*.xlsx), *.xlsx," & "Excel.xls (*xls), *xls", 1, "select wb2")
Set wb2= Workbooks.Open(Filename:=folder)

Sheets("2nd sheet").Copy After:=wb1.Sheets(1)
ActiveSheet.Name = "renamed sheet 2"
wb2.Close SaveChanges:=False

我尝试在复制前重命名第二张 wb2,但没有成功。

'wb2.Sheets(2).Select
'ActiveSheet.Name = "2nd sheet"

【问题讨论】:

  • 如果名称可能会更改,但它始终是您要复制的第二张纸,您不能简单地将Sheets("2nd sheet").Copy After:=wb1.Sheets(1) 更改为Sheets(2).Copy After:=wb1.Sheets(1) 吗?

标签: excel vba


【解决方案1】:

我可能没有正确理解您的问题,但是如果第二张表的名称可能会更改,但您要复制的始终是第二张表,则可以通过以下方式实现:

Dim wb1 As Workbook: Set wb1 = ThisWorkbook
Dim wb2 As Workbook
Path = Application.GetOpenFilename("Excel.xlsx (*.xlsx), *.xlsx," & "Excel.xls (*xls), *xls", 1, "select wb2")
Set wb2 = Workbooks.Open(fileName:=Path)

wb2.Sheets(2).Copy After:=wb1.Sheets(1)
ActiveSheet.Name = "renamed sheet 2"
wb2.Close SaveChanges:=False

【讨论】:

  • @noobaccountant 如果有帮助,您能否将我的回复标记为答案?谢谢:)
【解决方案2】:

引用 Sheets("2nd sheet") 作为其 Excel 工作表名称(例如 Sheets(1))。

【讨论】:

    猜你喜欢
    • 2018-02-24
    • 2016-08-08
    • 2023-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多