首页 > 解决方案 > 将输出写入文本文件

问题描述

我需要找到 RND -1 生成的前 20,000 个随机数。我编写了以下代码,它允许我在即时窗口中查看这些数字:

Sub xx()
Dim i As Long
Rnd -1
For i = 1 To 20000
    Debug.Print Rnd
Next i
End Sub

但是,只有最后 199 行存储在那里供我复制和粘贴。如何将整个输出写入文本文件?

非常感谢

标签: vba

解决方案


您可以使用FileSystemObject. 有关模块中的工作代码,请参见下面的示例:

Global fso As New FileSystemObject

Public Function GenRandomNumbers(ByVal n As Long) As String
    Dim i As Long
    Dim res As String
    Rnd -1
    For i = 1 To n
        res = res & CStr(Rnd()) & vbCrLf
    Next i
    GenRandomNumbers = res
End Function

Public Sub WriteRandomNumbers(ByVal n As Long, ByVal filename As String)
    Dim fs As TextStream
    Set fs = fso.CreateTextFile(filename, Overwrite:=True)
    fs.Write GenRandomNumbers(n)
    fs.Close
End Sub

在即时窗口中,您可以编写:

WriteRandomNumbers 20000, "Result.txt"

scr


推荐阅读