
EXCEL VB 在保存文本中第53行出错。调试出错语句,请问如何修改? “ Open nm For Output As #1 ”
Sublqxs()Dima()AsString,b()AsString,i&,s$,nm$nm=Application.GetOpenFilename("TextFile...
Sub lqxs()
Dim a() As String, b() As String, i&, s$, nm$
nm = Application.GetOpenFilename("Text Files (*.txt), *.txt", , "请选择文件", , MultiSelect:=False)
If Len(nm) = False Then MsgBox "你没有选择文件!": Exit Sub
Open nm For Input As #1
a = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf)
Close #1
For i = 0 To UBound(a)
If a(i) <> "" Then
b = Split(a(i), ",")
If b(4) = "7" Or b(4) = "8" Or b(4) = "9" Then b(4) = "6"
a(i) = Join(b, ",")
s = s & a(i) & vbCrLf
End If
Next
nm = ThisWorkbook.Path & "\" & nm & "转换后.txt"
Open nm For Output As #1
Print #1, s
Close (1)
End Sub
能否留邮箱,我附件发给你 展开
Dim a() As String, b() As String, i&, s$, nm$
nm = Application.GetOpenFilename("Text Files (*.txt), *.txt", , "请选择文件", , MultiSelect:=False)
If Len(nm) = False Then MsgBox "你没有选择文件!": Exit Sub
Open nm For Input As #1
a = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf)
Close #1
For i = 0 To UBound(a)
If a(i) <> "" Then
b = Split(a(i), ",")
If b(4) = "7" Or b(4) = "8" Or b(4) = "9" Then b(4) = "6"
a(i) = Join(b, ",")
s = s & a(i) & vbCrLf
End If
Next
nm = ThisWorkbook.Path & "\" & nm & "转换后.txt"
Open nm For Output As #1
Print #1, s
Close (1)
End Sub
能否留邮箱,我附件发给你 展开
2012-08-27 · 知道合伙人软件行家
关注

展开全部
把Close (1) 改成Close #1
出错的提示是是什么?
好的。evilfarmer@126.com
晕,你的问题是nm的名称中含有了路径。
你nm = ThisWorkbook.Path & "\" & nm & "转换后.txt"
这段代码就表示这个文件名带有两个盘符和路径。导致无法生成这样的文件。导致
Open nm For Output As #1
出错。。
给你改了。。
Sub lqxs()
Dim a() As String, b() As String, i&, s$, nm$
nm = Application.GetOpenFilename("Text Files (*.txt), *.txt", , "请选择文件", , MultiSelect:=False)
If Len(nm) = False Then MsgBox "你没有选择文件!": Exit Sub
Open nm For Input As #1
a = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf)
Close #1
For i = 0 To UBound(a)
If a(i) <> "" Then
b = Split(a(i), ",")
If b(4) = "7" Or b(4) = "8" Or b(4) = "9" Then b(4) = "6"
a(i) = Join(b, ",")
s = s & a(i) & vbCrLf
End If
Next
nm = ThisWorkbook.Path & "\" & Mid(nm, InStrRev(nm, "\") + 1, Len(nm) - InStrRev(nm, "\") - 4) & "转换后.txt"
Open nm For Output As #1
Print #1, s
Close #1
End Sub
这里Mid(nm, InStrRev(nm, "\") + 1, Len(nm) - InStrRev(nm, "\") - 4)表示取得原来nm中的文件的不带路径的名称,也不含后缀.txt
出错的提示是是什么?
好的。evilfarmer@126.com
晕,你的问题是nm的名称中含有了路径。
你nm = ThisWorkbook.Path & "\" & nm & "转换后.txt"
这段代码就表示这个文件名带有两个盘符和路径。导致无法生成这样的文件。导致
Open nm For Output As #1
出错。。
给你改了。。
Sub lqxs()
Dim a() As String, b() As String, i&, s$, nm$
nm = Application.GetOpenFilename("Text Files (*.txt), *.txt", , "请选择文件", , MultiSelect:=False)
If Len(nm) = False Then MsgBox "你没有选择文件!": Exit Sub
Open nm For Input As #1
a = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf)
Close #1
For i = 0 To UBound(a)
If a(i) <> "" Then
b = Split(a(i), ",")
If b(4) = "7" Or b(4) = "8" Or b(4) = "9" Then b(4) = "6"
a(i) = Join(b, ",")
s = s & a(i) & vbCrLf
End If
Next
nm = ThisWorkbook.Path & "\" & Mid(nm, InStrRev(nm, "\") + 1, Len(nm) - InStrRev(nm, "\") - 4) & "转换后.txt"
Open nm For Output As #1
Print #1, s
Close #1
End Sub
这里Mid(nm, InStrRev(nm, "\") + 1, Len(nm) - InStrRev(nm, "\") - 4)表示取得原来nm中的文件的不带路径的名称,也不含后缀.txt
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询