VBA/Macro 更改选项卡名称的脚本
VBA/Macro script to change a tab name
我已经对最近提供的脚本(发布在最底部)应用了更改,它正在运行并在下面列出。 (感谢 PeterB)
现在对于处理的每个文件,我想:
- 将 tab/sheetname 的名称更改为 excel 文件名
(试过
ActiveSheet.Name = ActiveWorkbook.Name
) 我收到一条错误消息,提示“我无法分配只读 属性”
我是 vba 的新手,相信一旦我学会了 DIM 的用法,接下来的步骤就会更加清晰。
我的感觉是,在我移动到下一个要处理的文件之前,我需要使用维度名称,紧接着我已经尝试过......但它不起作用。
谢谢!
'not working!!!
'File #1
wb_source.Name = ActiveWorkbook.Name
wb_source.Sheets("xAccountARAgingPatient.xlsx").Copy
after:=wb_target.Sheets(wb_target.Sheets.Count)
Application.DisplayAlerts = False
wb_source.Close
Application.DisplayAlerts = True
'working
Sub wwwww()
Dim wb_source As Workbook
Dim wb_target As Workbook
Application.DisplayAlerts = False
Set wb_source = Workbooks.Open("C:\Test\xAccountARAgingPatient.xlsx")
Set wb_target = Workbooks.Open("c:\Test\MEBIllingOffice.xlsm")
'assumes the sheet name is "xAccountARAgingPatient.xlsx" note - sheet names must be
unique within target
'File #1
wb_source.Sheets("xAccountARAgingPatient.xlsx").Copy
after:=wb_target.Sheets(wb_target.Sheets.Count)
wb_source.Close
'File #2
Set wb_source = Workbooks.Open("C:\Test\xAccountARAgingPayer.xlsx")
wb_source.Sheets("xAccountARAgingPayer.xlsx").Copy
after:=wb_target.Sheets(wb_target.Sheets.Count)
wb_source.Close
'File #3'
Set wb_source = Workbooks.Open("C:\Test\xCashAgingAnalysis.xlsx")
wb_source.Sheets("xCashAgingAnalysis.xlsx").Copy
after:=wb_target.Sheets(wb_target.Sheets.Count)
wb_source.Close
'wb_target.Save
'wb_target.Close
Application.DisplayAlerts = True
End Sub
从您的评论来看,您似乎在尝试重命名工作表。
但是您的代码看起来像是在尝试通过将工作簿名称分配给工作簿名称的只读值来重命名工作簿。确实令人困惑 - 并且肯定会导致该错误
根据您的示例,我假设您希望重命名 wb_source 中的工作表。
不清楚何时拆分代码以了解当时激活的工作簿。
尝试将名称分配给活动工作簿
的作品Sheet
ActiveWorkbook.ActiveSheet.Name = wb_source.Name
或者如果它实际上是源文档 - 只需使用它,这样您就不需要知道它是否有效。
wb_source.ActiveSheet.Name = wb_source.Name
我已经对最近提供的脚本(发布在最底部)应用了更改,它正在运行并在下面列出。 (感谢 PeterB)
现在对于处理的每个文件,我想:
- 将 tab/sheetname 的名称更改为 excel 文件名
(试过
ActiveSheet.Name = ActiveWorkbook.Name
) 我收到一条错误消息,提示“我无法分配只读 属性”
我是 vba 的新手,相信一旦我学会了 DIM 的用法,接下来的步骤就会更加清晰。
我的感觉是,在我移动到下一个要处理的文件之前,我需要使用维度名称,紧接着我已经尝试过......但它不起作用。
谢谢!
'not working!!!
'File #1
wb_source.Name = ActiveWorkbook.Name
wb_source.Sheets("xAccountARAgingPatient.xlsx").Copy
after:=wb_target.Sheets(wb_target.Sheets.Count)
Application.DisplayAlerts = False
wb_source.Close
Application.DisplayAlerts = True
'working
Sub wwwww()
Dim wb_source As Workbook
Dim wb_target As Workbook
Application.DisplayAlerts = False
Set wb_source = Workbooks.Open("C:\Test\xAccountARAgingPatient.xlsx")
Set wb_target = Workbooks.Open("c:\Test\MEBIllingOffice.xlsm")
'assumes the sheet name is "xAccountARAgingPatient.xlsx" note - sheet names must be
unique within target
'File #1
wb_source.Sheets("xAccountARAgingPatient.xlsx").Copy
after:=wb_target.Sheets(wb_target.Sheets.Count)
wb_source.Close
'File #2
Set wb_source = Workbooks.Open("C:\Test\xAccountARAgingPayer.xlsx")
wb_source.Sheets("xAccountARAgingPayer.xlsx").Copy
after:=wb_target.Sheets(wb_target.Sheets.Count)
wb_source.Close
'File #3'
Set wb_source = Workbooks.Open("C:\Test\xCashAgingAnalysis.xlsx")
wb_source.Sheets("xCashAgingAnalysis.xlsx").Copy
after:=wb_target.Sheets(wb_target.Sheets.Count)
wb_source.Close
'wb_target.Save
'wb_target.Close
Application.DisplayAlerts = True
End Sub
从您的评论来看,您似乎在尝试重命名工作表。
但是您的代码看起来像是在尝试通过将工作簿名称分配给工作簿名称的只读值来重命名工作簿。确实令人困惑 - 并且肯定会导致该错误
根据您的示例,我假设您希望重命名 wb_source 中的工作表。 不清楚何时拆分代码以了解当时激活的工作簿。
尝试将名称分配给活动工作簿
的作品SheetActiveWorkbook.ActiveSheet.Name = wb_source.Name
或者如果它实际上是源文档 - 只需使用它,这样您就不需要知道它是否有效。
wb_source.ActiveSheet.Name = wb_source.Name