我需要将一些字符串变量保存到 utf-8 编码的文件中。我有可以从另一个应用程序检索变量的 vba 脚本。
Sub Main
ChanNum = DDEInitiate("MacroEngine","MacroGetVar")
Var$ = DDERequest$(ChanNum,"VariableFromOutside")
DDETerminate ChanNum
sContent = Var
MsgBox sContent
End Sub
该脚本只能显示 sContent,但我需要在下一个脚本中进一步处理此字符串,如下所示
Sub saveUTF_File(FileUrl,sCode)
' save text into utf-8 format
Set objStream = CreateObject("ADODB.Stream")
With objStream
.Open
.Charset = "utf-8"
.Position = objStream.Size
.WriteText=sCode
.SaveToFile FileUrl,2
.Close
End With
Set objStream = Nothing
End Sub
FilePath = "C:\file.html"
saveUTF_File FilePath,sContent
但它没有工作,因为 sContent 变量不是从 Sub Main 过程继承的。我的问题是我该怎么做?感谢您提前提供任何帮助。
我现在的代码是
Function TextOutside() As Variant
ChanNum = DDEInitiate("MacroEngine","MacroGetVar")
Var$ = DDERequest$(ChanNum,"VariableFromOutside")
DDETerminate ChanNum
TextOutside = Var
' MsgBox TextOutside
End Function
Sub saveUTF_File(FileUrl,sCode)
Set objStream = CreateObject("ADODB.Stream")
With objStream
.Open
.Charset = "utf-8"
.Position = objStream.Size
.WriteText=sCode
.SaveToFile FileUrl,2
.Close
End With
Set objStream = Nothing
End Sub
FilePath = "C:\file.html"
sContent = TextOutside()
saveUTF_File FilePath, sContent
下面的这个脚本可以正常工作,但不幸的是根本不想将结果保存到 C:\file.html :( 为什么?
Global sContent
Sub Main()
ChanNum = DDEInitiate("MacroEngine","MacroGetVar")
Var$ = DDERequest$(ChanNum,"VariableFromOutside")
DDETerminate ChanNum
sContent = Var
MsgBox sContent
End Sub
Sub saveUTF_File(FileUrl,sCode)
' save text into utf-8 format
Set objStream = CreateObject("ADODB.Stream")
With objStream
.Open
.Charset = "utf-8"
.Position = objStream.Size
.WriteText = sCode
.SaveToFile FileUrl,2
.Close
End With
Set objStream = Nothing
End Sub
Sub DoAll()
Dim FilePath
'
' Main is called before here.
'
FilePath = "C:\file.html"
saveUTF_File FilePath, sContent
End Sub