【发布时间】:2017-07-12 21:26:54
【问题描述】:
这是我得到帮助的上一个问题的延续。我试图组合 2 个子例程,以便创建的文本文件最后删除空格。查看下面的代码,我在行上得到一个路径文件错误 - 在文件中打开输入为 #1
经过调试,我可以看到存储在 strFile 中的文件名在调用第二个例程时消失了。任何人都可以看到我的错误是为什么这样做并帮助我解决它吗? AltText_V2 是第二个例程。我已更新代码以仅包含问题所在的部分
Option Explicit
Public Sub AltText_V2()
Dim inFile As String
Dim outFile As String
Dim data As String
Dim strFile As String
'Ensures that the file open directory is always the same
ChDir "S:\MERIT OUTPUTS FOLDER\MSI Recruitment Limited\"
'inFile = Application.GetOpenFilename
inFile = strFile
Open inFile For Input As #1
outFile = inFile & ".txt"
Open outFile For Output As #2
Do Until EOF(1)
Line Input #1, data
If Trim(data) <> "" Then
Print #2, data
End If
Loop
Close #1
Close #2
Kill inFile
Name outFile As inFile
MsgBox "File alteration completed!"
End Sub
【问题讨论】:
-
请阅读:stackoverflow.com/help/mcve - 并考虑将问题中的代码量减少到您正在处理的问题。
-
@Robin Mackenzie,我已经更新了代码,我希望它现在在指导方针之内好一点
-
这更具可读性 - 我注意到您没有为
strFile分配值 - 您是否缺少类似strFile = "YourFile.foo"的内容? -
@Robin Mackenzie strFile 的值作为另存为的一部分在第一个子例程中被拾取对于创建的初始文本文件但是当它在第二个例程中被拾取时它消失了...
-
也许你想将
strFile变量传递给AltText_V2即Sub AltText_V2(strFile As String),然后去掉Dim strFile As String声明。