我正在尝试复制工作表,然后打开副本以更改第一个工作表的名称。
这是Module1
上插入的代码:
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
保存副本的Sub
的第一部分完美无缺。虽然当我尝试运行第二部分时,它会给我以下错误:
运行时错误1004:Excel无法打开文件
它说它无法理解扩展程序.xlsx
或文件可能已损坏,但我已经检查过,文件正常。
有谁知道这是哪个问题?
答案 0 :(得分:0)
这对我有用
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
一切正常,所以我们可能会遗漏细节
答案 1 :(得分:0)
不想Hijack Doug的答案,所以这是一种测试方法:
尝试注释掉代码的第二部分 - 留下" saveas"和 跑。完成后,检查目标路径中的文件 - 看看是否 你可以通过手动成功打开它。
现在在一个NEW子中按代码打开这个文件。不要设置工作表名称。让 我们知道结果
编辑:
尝试将工作表保存到新工作簿并保存新工作簿:
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"到你要保存的工作表名称