首页 > 解决方案 > 无法弄清楚为什么我会收到运行时错误 9:下标超出范围错误

问题描述

我有一个在 Workbook_BeforeSave 事件期间运行的代码,该代码旨在将电子表格的一部分保存到外部文本文件中,用于在多个工作簿之间同步数据。

代码如下:

Sub SaveSyncFile()

    Dim syncfilename As String, lineText As String
    Dim myrng As Range, i, j

    syncfilename = "\\fs01\G_Share\a account information\Account Functions & Tools\Menus\Account Recipes\" & Worksheets("DevTools").Range("D2").Value & " recipes.txt"

    Open syncfilename For Output As #1

    Set myrng = Range("AcctRec")

    For i = 1 To myrng.Rows.Count
        For j = 1 To myrng.Columns.Count
            lineText = IIf(j = 1, "", lineText & ",") & myrng.Cells(i, j)
        Next j
        Print #1, lineText
    Next i

    Close #1

End Sub

当文件有时关闭时,此行是发生错误的地方: syncfilename = "\\fs01\G_Share\a account information\Account Functions & Tools\Menus\Account Recipes\" & Worksheets("DevTools").Range("D2").Value & " recipes.txt"

所以,当我调试时,我可以?"\\fs01\G_Share\a account information\Account Functions & Tools\Menus\Account Recipes\" & Worksheets("DevTools").Range("D2").Value & " recipes.txt"在即时窗口中得到结果,但是如果我尝试得到?syncfilename,它没有显示任何价值......

那么,变量值的赋值似乎有些问题?

此外,更多信息...如果只是直接运行 Sub,则此 Sub 似乎可以正常工作...但是当从 Workbook_BeforeSave 事件调用 sub 时,有时会发生错误。

知道如何解决吗?

标签: excelvba

解决方案


推荐阅读