【问题标题】:Rename Sheet after it is copied and Create Master Workbook复制后重命名工作表并创建主工作簿
【发布时间】:2017-07-05 19:53:52
【问题描述】:

以下是用于从源复制工作表然后重命名并放置到目标的代码。

我想扩展功能以使用另一个单元格引用来重命名新创建的文件中的工作表名称。 (注意每个复制的工作簿只有一个工作表。)然后在所有工作簿被复制、重命名和工作表重命名后,将目标路径中的所有工作簿合并为一个。

Sub CopyRenameFile()
Dim src As String, dst As String, fl As String, f2 As String
Dim rfl As String
Dim rf2 As String

'Source directory
src = Range("B3")

'Destination directory
dst = Range("D3")

'File name
fl = Range("B6")
f2 = Range("B7")

'Rename file
rfl = Range("D6")
rf2 = Range("D7")

On Error Resume Next
    FileCopy src & "\" & fl, dst & "\" & rfl
    FileCopy src & "\" & f2, dst & "\" & rf2
    If Err.Number <> 0 Then
        MsgBox "Copy error: " & src & "\" & rfl
    End If
On Error GoTo 0

Dim xL As Excel.Application
Set xL = New Excel.Application
xL.Visible = True
Dim wb As Excel.Workbook
Set wb = xL.Workbooks.Open(F6)

'In case you don't know how here are two ways to reference a sheet:
Dim sh As Excel.Worksheet
Set sh = xL.Sheets(1)

sh.Name = "TestMeOut"

'Saving and closing are important...
wb.Save
Set wb = Nothing
xL.Quit
Set xL = Nothing

End Sub

【问题讨论】:

  • 我在那里看不到任何代码复制表。这与问题有什么关系?
  • 上面从源目录中获取一个文件 f1 然后重命名该文件并将其放置在目标目录中。我想添加到它以获取新命名的文件并更改工作表名称。之后复制并重命名列表中的所有文件,然后将它们合并到一个工作簿中,与执行宏的工作簿分开。

标签: vba excel


【解决方案1】:

如果是活动工作表,请使用

ActiveSheet.Name = "New Name"

如果它不是活动工作表,则使用:

Sheets("SheetName").Name = "New Name"

Sheets(2).Name = "New Name"

对于最后一个,索引(示例中为 2)是从 1 开始从左到右计数的工作表编号。

按文件名打开 Excel 工作簿:

Dim xL As Excel.Application
Set xL = New Excel.Application
xL.Visible = True
Dim wb as Excel.Workbook
Set wb = xl.Workbooks.Open(put your filename here as a literal or variable)

'In case you don't know how here are two ways to reference a sheet:
Dim sh As Excel.Worksheet
Set sh = xL.Sheets("Sheet1")
'    or
Set sh = xL.Sheets(1)

'put your code here

'Saving and closing are important...
wb.Save
Set wb = Nothing
xL.Quit
Set xL = Nothing

注意:要使用 Excel 引用,请转到工具 => 引用并查找 Microsoft Office xx.x 对象库(其中 xx.x 是版本)。

【讨论】:

  • 如果工作表未激活,是否需要引用文件名或选择要进行工作表重命名的工作簿?
  • 我添加了更多代码来展示如何打开工作簿。
  • 所以我根据您提供的建议更新了这篇文章中的代码。 F6 是工作表的文件路径。但是,当它执行时,它会打开一个新的 Excel 窗口,但随后会出现运行时错误 1004 “抱歉,我们找不到。它是否可能已被移动、重命名或删除?”
  • 要引用单元格 F6,您需要这样做: Set wb = xL.Workbooks.Open(Range("F6").Value)。 “.Value”通常是可选的,但在某些情况下它可能不起作用......
猜你喜欢
  • 1970-01-01
  • 2021-08-28
  • 2020-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 2018-04-08
  • 2018-09-12
相关资源
最近更新 更多