我在Excel 2007项目中有这个VBA子。它记录 SharePoint 网站中.txt文件的用户名、报表名称、日期和版本。 我的一些用户遇到了Run-Time error'76' Path not found
问题。
这是我的代码:
Sub logReport(ReportName As String)
Call AppendTxt("//myaviall/teamsites/AviallReportingSolutions/Airplane_Usage_Log/Airplane_ACT.txt", UNameWindows & ";" & ReportName & ";" & Now & ";" & VersionNum)
Dim oFS, TS, FileObj
'Get text stream
'Set oFS = CreateObject("Scripting.FileSystemObject")
'Set FileObj = oFS.GetFile("//myaviall/teamsites/AviallReportingSolutions/Airplane_Usage_Log/Airplane_ACT.txt")
'Set TS = FileObj.OpenAsTextStream(8, -2) 'ForWriting, TristateUseDefault)
' Write to file
'TS.WriteLine UNameWindows & ";" & ReportName & ";" & Now & ";" & VersionNum
'TS.Close
'Set TS = Nothing
'Set FileObj = Nothing
'Set oFS = Nothing
End Sub
Function AppendTxt(sFile As String, sText As String)
On Error GoTo Err_Handler
Dim FileNumber As Integer
FileNumber = FreeFile ' Get unused file number
Open sFile For Append As #FileNumber ' Connect to the file
Print #FileNumber, sText ' Append our string
Close #FileNumber ' Close the file
Exit_Err_Handler:
Exit Function
Err_Handler:
MsgBox "The following error has occured" & vbCrLf & vbCrLf & _
"Error Number: " & Err.Number & vbCrLf & _
"Error Source: AppendTxt" & vbCrLf & _
"Error Description: " & Err.Description, vbCritical, "An Error has Occured!"
GoTo Exit_Err_Handler
End Function
如果只有一个用户遇到问题,我会首先查看它的访问权限,正如斯科特指出的那样。
我运行一个非常相似的过程,根据此处的代码将一行从 Outlook 写入 csv 文件http://www.devhut.net/2011/06/06/vba-append-text-to-a-text-file/
这可能不是您的答案,但如果访问正常,那么尝试另一种方法不会有什么坏处。
更新
我还将其包含在我的代码中以测试该文件是否存在
exists = Dir$(sFile) <> fileName
其中文件名 = "Airplane_ACT.txt" 但我可能会尝试使用 msgBox 看看它返回的内容。
还尝试尝试将字符串更改为 Airplane_ACT_test.txt 并运行代码,这应该创建一个新的 txt 文件,如果是这种情况,那么问题可能与您的初始 txt 文件有关。
最后一件事:尝试使用不同的路径,例如:到用户的桌面。