2011-08-10 89 views
8

我正在寫一個宏,它通過一個文檔並嘗試按Style分析它。現在,指定樣式中的任何內容都將被複制到即時窗口中。有沒有辦法讓宏自動進一步將文本從即時窗口移動到txt文件中?否則,任何使用宏的人都將無法看到文本,除非他們打開VBA,對嗎?將立即窗口的內容寫入文本文件

+0

你是如何把它放到眼前的窗口?你可以將它存儲到一個字符串變量中,並在流程完成時將它放入一個文本文件中? – mellamokb

+0

...或者只是彈出一個窗體。 –

+1

我不明白爲什麼你想讓信息先在即時窗口中傳輸,然後才從那裏寫入文件。爲什麼不直接寫入文件? –

回答

18

這裏是我的建議:同時寫入到立即窗口和文件。下面的例子。

爲什麼信息首先在即時窗口中傳輸,然後才從那裏寫入文件?這聽起來有點反常而且毫無用處!

Dim s As String 
Dim n As Integer 

n = FreeFile() 
Open "C:\test.txt" For Output As #n 

s = "Hello, world!" 
Debug.Print s ' write to immediate 
Print #n, s ' write to file 

s = "Long time no see." 
Debug.Print s 
Write #n, s ' other way of writing to file 

Close #n 


Dim FSO As Scripting.FileSystemObject 
Set FSO = New Scripting.FileSystemObject 
Dim txs As Scripting.TextStream 
Set txs = FSO.CreateTextFile("C:\test2.txt") 
s = "I like chickpeas." 
Debug.Print s ' still writing to immediate 
txs.WriteLine s ' third way of writing to file 
txs.Close 
Set txs = Nothing 
Set FSO = Nothing 

請注意,最後一點代碼需要設置引用:工具>引用> checkmark在Microsoft腳本運行時。

+0

你好,謝謝你的回答!我有一個問題:使用其中一種方法而不是另一種方法有什麼優點/不方便嗎? –

+1

是的。我建議你閱讀並試用它們。就個人而言,我幾乎總是使用'FileSystemObject'方法。 –

-1

將此代碼置於立即窗口中,並按回車鍵將列表寫入C#中的JSON文本。

System.IO.File.WriteAllText(@"C:\Users\m1028200\Desktop\Json2.txt", 
JsonConvert.SerializeObject(resultsAll));