数据未显示在文件中

时间:2014-12-09 08:42:35

标签: excel vba excel-vba

当我运行宏时宏没有写入文件时,我遇到了print语句的问题。 我得到一个没有数据插入文件的空白文件,任何人都可以告诉帽子错误。

Sub sample()
    Open "C:test.txt" For Output As #2
    Dim a As String
    a = "hi"
   print #2, a
End Sub

1 个答案:

答案 0 :(得分:0)

我认为这不相关,但您不应该假设文件编号2可用。您应该使用FreeFile获取下一个免费文件编号。

真正的问题可能是" C:test.txt"。这意味着:写" test.txt"到驱动器C中的当前目录。当前目录可能不是你想象的那样。

我已经创建了宏的修正版本:

  • 我已按照Axel的建议关闭了该文件。 Excel将在您之后进行清理,因此这不是必需的,但最好是自己做家务。
  • 我建议使用FreeFile
  • 我添加了两个Debug.Print语句来将数据输出到立即窗口。第一个输出文件号,可能是1.第二个输出当前目录,可能是" C:\ YourUserName \ Documents"。
  • 我修改了Open语句,因此文件将写入包含工作簿的文件夹。

希望这有帮助。

Option Explicit
Sub sample()

  Dim FileNum As Long

  FileNum = FreeFile

  Debug.Print "File number " & FileNum
  Debug.Print "Current directory " & CurDir

  Open ThisWorkbook.Path & "\test.txt" For Output As #FileNum
  Dim a As String
  a = "hi"
  Print #FileNum, a

  Close FileNum

End Sub