如何避免从各种工作表导出单元格值到文本文件时出现运行时错误70

问题:VBA运行时错误70

当我从另一个子过程调用子过程“writeTxt”时,我收到错误消息“运行时错误70”与代码行“Open strDatei1 For Output As#1”

当我通过“F8”的代码,它工作得很好,没有错误消息,所有的variables都有正确的值。 所有工作表的内容被打印到正确的* .txt文件。

有没有人有如何避免错误信息的想法?

Sub writeTxt() Dim Rng As Range Dim i As Long Dim j As Long Dim x As Long Dim cellValue As Variant Dim nameSheet As String Dim strDatei1 As String Application.ScreenUpdating = False Application.DisplayAlerts = False For x = 29 To 40 nameSheet = Sheets("CodeData").Cells(x, 1).Value strDatei1 = Sheets("CodeData").Cells(x, 2).Value Sheets(nameSheet).Select Set Rng = Range("a1").CurrentRegion Open strDatei1 For Output As #1 For i = 1 To Rng.Rows.Count For j = 1 To Rng.columns.Count cellValue = Rng.Cells(i, j).Value If j = Rng.columns.Count Then Print #1, cellValue Else Print #1, cellValue, End If Next j Next i Close #1 Next x Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub 

您不能总是使用As #1访问文件。 使用FreeFile来获取下一个可用的文件编号:

 Dim fileNumber As Integer fileNumber = FreeFile Open strDatei1 For Output As #fileNumber