用VBA写txt文件时,总提示“文件模式错误”,怎么回事?

kxw 2006-01-24 03:08:49
请教各位,
我现在要通过VBA把EXCEL单元格里的数据导到一个文本文件里,代码如下,我从网上找来的。

执行宏的时候总报错——文件模式错误,然后就停在,
Print #FileNum, """" & election.Cells(RowCount, _
ColumnCount).Text & """";

不知道为什么。我用excel2003。
我试了很多网上的写文件的例子,都是报这个错,所以来向大家请教!!


Sub QuoteCommaExport()
Dim DestFile As String
Dim FileNum As Integer
Dim ColumnCount As Integer
Dim RowCount As Integer

' 提示用户指定目标文件名。
DestFile = InputBox("Enter the destination filename" & _
Chr(10) & "(with complete path and extension):", _
"Quote-Comma Exporter")
' 获取下一个可用的文件句柄编号。
FileNum = FreeFile()

' 关闭错误检查功能。
On Error Resume Next

' 尝试打开目标文件以供输出。
Open DestFile For Output As #FileNum
' 如果出现错误,则报告错误并结束程序。
If Err <> 0 Then
MsgBox "Cannot open filename " & DestFile
End
End If

' 打开错误检查功能。
On Error GoTo 0

' 循环选择的每一行。
For RowCount = 1 To Selection.Rows.Count
' 循环选择的每一列。
For ColumnCount = 1 To Selection.Columns.Count

' 将当前单元格中的文本写入到文件中,文本用引号括起来。
Print #FileNum, """" & Selection.Cells(RowCount, _
ColumnCount).Text & """";
' 检查单元格是否位于最后一列。
If ColumnCount = Selection.Columns.Count Then
' 如果是,则写入一个空行。
Print #FileNum,
Else
' 否则,则写入一个逗号。
Print #FileNum, ",";
End If
' 开始 ColumnCount 循环的下一个迭代。
Next ColumnCount
' 开始 RowCount 循环的下一个迭代。
Next RowCount

' 关闭目标文件。
Close #FileNum
End Sub
...全文
693 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
faysky2 2006-01-24
  • 打赏
  • 举报
回复
to: kxw(时光)
邮件已经发送,请注意查收。
kxw 2006-01-24
  • 打赏
  • 举报
回复
好了,可能是杀毒软件的事儿,我用卡巴。
kxw 2006-01-24
  • 打赏
  • 举报
回复
yorkness(机器猫)

我把后面的值都去掉了,只写入一个空行,还是不行。
kxw 2006-01-24
  • 打赏
  • 举报
回复
这个就奇怪了。

faysky2,你把你的整个的excel文件发给我好吗?

kongxiangwei@263.net

谢谢!
yorkness 2006-01-24
  • 打赏
  • 举报
回复
单步调一下,看看执行该语句时,"""" & election.Cells(RowCount, ColumnCount).Text & """"的值是多少,不行的话先写一个常量看看。还有看看变量Filenum是多少,会不会超出范围?
faysky2 2006-01-24
  • 打赏
  • 举报
回复
我在InputBox 是这样输入的 C:\test.txt
faysky2 2006-01-24
  • 打赏
  • 举报
回复
我试了一下,没有错误哦,我的是excel2003,怎么回事?
kxw 2006-01-24
  • 打赏
  • 举报
回复
看来是有问题,我刚才在一台excel2000的机器上,也是同样,报错。
kxw 2006-01-24
  • 打赏
  • 举报
回复
改过了,还是不行,错是一样的。

是不是2003的VBA有问题?
faysky2 2006-01-24
  • 打赏
  • 举报
回复
Print #FileNum, """" & election.Cells(RowCount, _
ColumnCount).Text & """";

-------------------------------
改为Write语句的试试

Wirte #FileNum, """" & election.Cells(RowCount, ColumnCount).Text & """";

2,503

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧