运行时错误 462 远程服务器计算机不存在 - 第一次运行正常,第二次代码运行时出错 - MS Project 和 Excel

问题描述 投票:0回答:1

我从 MS Project 中运行一些 VBA,根据保存的地图导出 Excel 工作表,然后打开它进行整理和格式化。第一次通过时工作正常,第二次尝试时,当它到达“With XLWorksheet > Range ("C:C")....”时,我收到错误 462。

之前的错误是1004,但我添加了一个例程来在最后终止所有Excel进程。

如果我在出错时停止代码并手动关闭工作簿和 Excel,它将再次运行而不会出现错误。

阅读之前的一些帖子,我想我已经做了一些不合格的引用,这些引用创建了无法被杀死或不存在的隐式引用,但我是一个完全的新手,所以我正在努力看看是否是这种情况。

我使用桌面来存储文件只是因为我还没有信心在 Sharepoint 中使用。

以下代码

Dim XLApp As Excel.Application
Dim XLwbook As Excel.Workbook
Dim XLWorksheet As Excel.Worksheet
Dim strInputFileName As String

    strInputFileName = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\Costs Export " & Format(Date, "ddmmyy") & "_" & Format(Time, "hhnnss") & ".xlsx"
    FileSaveAs Name:="" & strInputFileName & "", FormatID:="MSProject.ACE", Map:="Costs by date"

    Set XLApp = CreateObject("Excel.application")
    Set XLwbook = XLApp.Workbooks.Open(strInputFileName)
    Set XLWorksheet = XLwbook.Worksheets(1)
    
    XLApp.Visible = True

    With XLWorksheet
        'Convert and format export data
        Range("C:C").TextToColumns **'< ERRORS HERE ON SECOND RUN**
        Range("D:D").TextToColumns
        Range("E:E").TextToColumns
        Range("F:F").TextToColumns
        Range("G:G").TextToColumns
        Range("C:C").NumberFormat = "dd/mm/yy"
        'Sort
        Range("A1", Range("G1").End(xlDown)).Sort key1:=Range("C1"), order1:=xlAscending, Header:=xlYes
        
        'Add Dev and Tool columns
        Range("D1").EntireColumn.Insert
        Range("D:D").NumberFormat = "#,###"
        Range("D1").Value = "Dev Cost"
        
        'Extract budget or actual figures
        Range("D2", Range("D2").End(xlDown)).Formula = "=IF(H2=999, 0,IF(H2>0, H2, F2))"

        'Insert row and add totals
        Cells(Rows.Count, "A").End(xlUp).EntireRow.Delete
        Range("A1").EntireRow.Insert
        Range("D1").Value = WorksheetFunction.Sum(.Range("D:D"))

        Columns("A:I").AutoFit
    End With

    XLwbook.Close (True)
    Set XLWorksheet = Nothing
    Set XLwbook = Nothing
    
    XLApp.Quit
    Set XLApp = Nothing

'Kill all Excel processes
FindAndTerminate

End Sub
excel vba ms-project
1个回答
1
投票

输入“。”在 With 内所有行的开头部分。就像下面这样。 :)

 With XLWorksheet
    'Convert and format export data
    .Range("C:C").TextToColumns **'< ERRORS HERE ON SECOND RUN**
    .Range("D:D").TextToColumns
    .Range("E:E").TextToColumns
    ....
© www.soinside.com 2019 - 2024. All rights reserved.