[英]Need to retrieve the data from the function and write in the text file in macros excel
我在宏Excel中具有三個功能。 我正在展示一個例子來理解
Sub main()
Dim Obj As Object
Dim File As Object
Set Obj = CreateObject("Scripting.FileSystemObject")
Set File = Obj.createtextfile("c:\amix.txt"", True)
A
B
C
End sub
Public Function A()
file.writeline("ABC")
End Function
Public Function B()
file.writeline("Def")
End Function
Public Function C()
file.writeline("GHI")
End Function
現在我想將所有這些功能數據寫入amix.txt記事本
而且,如果我們在每個函數中都寫了兩行(創建對象和文件),則文本文件對於每個函數來說都是多余的。
現在,您可以通過代碼來建議我,我可以擺脫我的問題嗎?
顯然,錯誤是您沒有將File
傳遞給函數。 嘗試以下方法。 經過嘗試和測試,可以正常工作。 另外,您的目錄末尾還有一個額外的"
。不確定您是否輸入錯字。
Sub main()
Dim Obj As Object
Dim File As Object
Set Obj = CreateObject("Scripting.FileSystemObject")
Set File = Obj.CreateTextFile("c:\amix.txt", True)
WriteA File
WriteB File
WriteC File
End Sub
Public Function WriteA(File As Object)
File.writeline "ABC"
End Function
Public Function WriteB(File As Object)
File.writeline "DEF"
End Function
Public Function WriteC(File As Object)
File.writeline "GHI"
End Function
希望這可以幫助。
編輯:
如果要在另一個內部調用一個函數,只需確保內部函數首先存在。 這樣做沒有問題。 但是,這種做法通常最多是非常規的。 同樣(經過測試並可以正常工作):
Public Function WriteC(File As Object)
'Calling WriteB inside WriteC as well.
File.writeline "GHI"
WriteB File
End Function
讓我們知道是否有幫助。
您需要將文本文件對象設置為Global。 您還應該使用Subs而不是Function 。 例如:
Dim Obj As Object
Dim Ffile As Object
Sub main()
Set Obj = CreateObject("Scripting.FileSystemObject")
Set Ffile = Obj.createtextfile("C:\TestFolder\amix.txt", True)
Call A
Call B
Call C
End Sub
Sub A()
Ffile.writeline ("ABC")
End Sub
Sub B()
Ffile.writeline ("Def")
End Sub
Sub C()
Ffile.writeline ("GHI")
End Sub
此外,最終您應該執行
Ffile.Close
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.