vba:打开工作簿并更改工作表名称
我正在尝试复制一张工作表,然后打开副本以更改第一张工作表的名称 这是插入到模块1上的代码:vba:打开工作簿并更改工作表名称,vba,excel,Vba,Excel,我正在尝试复制一张工作表,然后打开副本以更改第一张工作表的名称 这是插入到模块1上的代码: Sub CopiarNovaPlanilha() Dim wkb As Workbook ActiveWorkbook.SaveCopyAs "I:\CGP\DEOPEX\01 - Supervisão\10 - Alocação das equipes\Consulta Alocados\ALOCACAO TECNICOS.xlsx" Set wkb = Workbooks.Open("I:\CGP
Sub CopiarNovaPlanilha()
Dim wkb As Workbook
ActiveWorkbook.SaveCopyAs "I:\CGP\DEOPEX\01 - Supervisão\10 - Alocação das equipes\Consulta Alocados\ALOCACAO TECNICOS.xlsx"
Set wkb = Workbooks.Open("I:\CGP\DEOPEX\01 - Supervisão\10 - Alocação das equipes\Consulta Alocados\ALOCACAO TECNICOS.xlsx")
wkb.Sheets(1).Name = "FUNCIONARIOS"
End Sub
保存副本的子部分的第一部分非常有效。虽然当我尝试运行第二部分时,会出现以下错误:
运行时错误1004:Excel无法打开该文件
它说它无法理解扩展名.xlsx
,或者文件可能已损坏,但我检查过了,文件没有问题
有人知道这是什么问题吗?这对我很有用
Private Sub derp()
Dim wbk As Workbook
Dim path As String
path = "C:\Users\dcoats\Desktop\Book1.xlsx"
Set wbk = Workbooks.Open(path)
wbk.Sheets(1).Name = "FUNCIONARIOS"
End Sub
所以也许可以检查你的字符串,这是你的工作簿的路径
编辑
我刚试过这个,效果也不错
Private Sub derp()
Dim wbk As Workbook
Dim path As String
path = "C:\Users\dcoats\Desktop\CGP\DEOPEX\01 - Supervisão\10 - Alocação das equipes\Consulta Alocados\Book1.xlsx"
Set wbk = Workbooks.Open(path)
wbk.Sheets(1).Name = "FUNCIONARIOS"
End Sub
我也试过了
Private Sub derp()
Dim wbk As Workbook
Dim path As String
path = "C:\Users\dcoats\Desktop\CGP\DEOPEX\01 - Supervisão\10 - Alocação das equipes\Consulta Alocados\yaybook.xlsm"
ThisWorkbook.SaveAs path, FileFormat:=52
Set wbk = Workbooks.Open(path)
wbk.Sheets(1).Name = "FUNCIONARIOS"
End Sub
一切正常,所以我们可能会遗漏细节
我不想劫持Doug的答案,所以这里有一个测试方法:
尝试注释代码的第二部分-保留“saveas”和
跑完成后,检查目标路径中的文件-查看是否
您可以手动成功打开它
现在在一个新的子文件中,按代码打开此文件。尚未设置图纸名称。让
我们知道结果
编辑:
尝试将工作表保存到新工作簿并保存新工作簿:
Sub test()
Dim wbk As Workbook
Dim nwb As Workbook
Dim path As String
path = "C:\Users\dcoats\Desktop\CGP\DEOPEX\01 - Supervisão\10 - Alocação das equipes\Consulta Alocados\"
Set wbk = ThisWorkbook
Set nwb = Workbooks.Add
wbk.Sheets("Sheet1").Copy before:=nwb.Sheets(1)
nwb.SaveAs path & "test2.xlsx"
End Sub
将“Sheet1”更新到您要保存的任何工作表名称您想要工作簿的副本还是新工作簿中的单个工作表?@Jeeped我想要复制工作簿,然后更改复制工作簿的第一张工作表的名称。由于路径与SaveCopyAs
相同(并且保存在正确的位置),我想我的道路是正确的。。。但是我测试了这个,它对我不起作用。@paulinhax Doug在这里建议将工作簿保存到一个简单的路径-路径中的字符,例如“Supervisonão\10-Alocaão d”,可能会在Excel尝试访问时引起问题。我看不出问题是什么?它对我来说完美无瑕,这是非常直截了当的。还有其他细节你没有添加吗?@Alex我没想到特殊角色是个问题。好catch@Alex谢谢,我考虑过了,虽然我不能改变这些字符。但它不应该在第一行也引起问题?因为它工作正常,复制正确。你说得很有道理。该文件已创建,但即使它作为工作簿显示在目标文件上也无法打开。@paulinhax这意味着“另存为”部分不适用于您-请检查您的文件夹访问权限,或者干脆将其保存到您具有读/写访问权限的某个位置。我尝试了类似的操作。我将目标更改为我的私人文件夹,但仍然存在相同的问题。因此,我将.xlsx
更改为.xlsm
只是为了检查,现在文件已正确打开。。。我不知道这是什么问题。@paulinhax我们都忽略了一个要点-是的,带有宏的文件需要另存为.xlsm。除非你保存的是另一个文件,我明白你的意思,但这里的主要目的只是复制没有宏的工作表。所以我想我用了SaveCopyAs
而不是SaveAs
。。。但是我不想使用FileFormat:=51
,因为我不想在之后打开文件,明白吗?