vba:打开工作簿并更改工作表名称

时间:2017-07-21 14:43:34

标签: excel vba excel-vba

我正在尝试复制工作表,然后打开副本以更改第一个工作表的名称。

这是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或文件可能已损坏,但我已经检查过,文件正常。

有谁知道这是哪个问题?

2 个答案:

答案 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"到你要保存的工作表名称