晚上好,
我一直试图修复这个bug几个小时,但没有运气。特别令人沮丧的是,这个bug并没有在我自己的工作站上表现出来,而是出现在每个其他人身上。 代码的目的是创建(FileSystemObject - > CreateTextFile)两个.txt文件并将(TextStream)特定信息写入每个文件中。以下是相关的代码行:
Dim username, filename, filename_2, filepath, complete_filepath, complete_filepath_2 As String
Dim fso As New FileSystemObject
Dim fso_2 As New FileSystemObject
Dim txtStream, txtStream_2 As TextStream
'Gets username
username = CreateObject("WScript.NetWork").username
filename = "db_Redel"
filename_2 = "db_ship"
complete_filepath = "C:\Users\" & username & "\Documents\" & filename & ".txt"
complete_filepath_2 = "C:\Users\" & username & "\Documents\" & filename_2 & ".txt"
Set txtStream = fso.CreateTextFile(complete_filepath, True) 'RUNTIME ERROR 76
Set txtStream_2 = fso_2.CreateTextFile(complete_filepath_2, True)
我确定已经测试的计算机上存在声明的文件路径。我怀疑某些东西使FileSystemObject对象无法正常运行,例如权限,但我检查了其他工作站上的Office安全中心,并且它们都具有与我相同的设置。以下是激活的参考:
这些也在所有其他机器上激活。
我该怎么办?需要明确的是:代码在我自己的工作站上按预期工作。
更新:我让我的一个朋友尝试了,它在他的电脑上运行得很好。
答案 0 :(得分:2)
原来问题在于dateformat。我自己电脑上的格式是DD-MM-YYYY,而其他工作站的格式是DD / MM / YYYY。正斜率显然不能在文件名中,因此问题已解决:
DateNow = Date()
filename = Replace(DateNow, "/", "-")
:(
答案 1 :(得分:0)
根据您的输入,我们不清楚username
和Date
的实际值。如果这些空格 - 您可能会遇到问题。首先尝试使用fso.FolderExists("C:\Users\" & username & "\Documents\")
方法并确保它返回 True 。
答案 2 :(得分:0)
您的代码在我的电脑上正常运行。但是,在调整变量时,您会犯一个常见的错误。这一行:
Dim username,filename,filename_2,filepath,complete_filepath,complete_filepath_2 As String
实际上只会将 complete_filepath_2 变暗为字符串。其他人成为变种类型。
与行相同的问题:
Dim txtStream,txtStream_2 As TextStream
只有 txtStream_2 会变暗为文字流
你需要每行调暗一个变量:
Dim username as String
Dim filename as String
Dim filename_2 as String
将文件路径调暗为String
将complete_filepath变为String
Dim complete_filepath_2 As String
只有这样你才能获得你期望的变量类型