无法在 Excel 宏中创建简单的 VBA 函数并调用它
Unable to create simple VBA function in Excel Macro and call it
我正在尝试创建一个宏,它可以从本地活动工作簿中的 excel 电子表格收集数据,然后创建头文件,稍后我会将其合并到我的项目中。但是对于我来说,我一定是错过了一些如此愚蠢的东西,以至于我无法创建一个工作函数,该函数 returns 一个字符串(它将构造一个 C++ 结构)到调用函数。我已将示例代码简化为绝对最低限度以隔离问题,但我仍然无法弄清楚我做错了什么。我不是 VBA 方面的专家,但我知道如何编写代码,而且我无法缩小 VBA 不满意的范围。我不断收到 "compile error, syntax error." 请将以下代码复制到您的模块中,看看是否为您正确编译。如果您知道我哪里出错了,请告诉我。非常感谢!!!
Sub CREATE_FACTORY_SETTING_HEADER()
Dim FS, TSsource
Set FS = CreateObject("Scripting.FileSystemObject")
Dim TSout
Set TSout = FS.Createtextfile("HeaderFile.h", True)
Dim fileHeading As String
fileHeading = "File Heading for Header file"
Dim fileBody As String
fileBody = "Some initial file body lines"
fileBody = fileBody & createStructBody
TSout.Write fileHeading & fileBody
TSout.Close
End Sub
Public Function createStructBody() As String
Dim structBody As String
structBody = "Hey I'm a struct body, but I can't be returned for some reason"
Return structBody
End Function
VBA 和 VBScript 都使用 'assignment to function'(而不是 'return' 或 'result of last statement')到函数的 return 结果。所以
Public Function createStructBody() As String
createStructBody = "Hey I'm a string and can be returned."
End Function
我正在尝试创建一个宏,它可以从本地活动工作簿中的 excel 电子表格收集数据,然后创建头文件,稍后我会将其合并到我的项目中。但是对于我来说,我一定是错过了一些如此愚蠢的东西,以至于我无法创建一个工作函数,该函数 returns 一个字符串(它将构造一个 C++ 结构)到调用函数。我已将示例代码简化为绝对最低限度以隔离问题,但我仍然无法弄清楚我做错了什么。我不是 VBA 方面的专家,但我知道如何编写代码,而且我无法缩小 VBA 不满意的范围。我不断收到 "compile error, syntax error." 请将以下代码复制到您的模块中,看看是否为您正确编译。如果您知道我哪里出错了,请告诉我。非常感谢!!!
Sub CREATE_FACTORY_SETTING_HEADER()
Dim FS, TSsource
Set FS = CreateObject("Scripting.FileSystemObject")
Dim TSout
Set TSout = FS.Createtextfile("HeaderFile.h", True)
Dim fileHeading As String
fileHeading = "File Heading for Header file"
Dim fileBody As String
fileBody = "Some initial file body lines"
fileBody = fileBody & createStructBody
TSout.Write fileHeading & fileBody
TSout.Close
End Sub
Public Function createStructBody() As String
Dim structBody As String
structBody = "Hey I'm a struct body, but I can't be returned for some reason"
Return structBody
End Function
VBA 和 VBScript 都使用 'assignment to function'(而不是 'return' 或 'result of last statement')到函数的 return 结果。所以
Public Function createStructBody() As String
createStructBody = "Hey I'm a string and can be returned."
End Function