[英]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.