MS 将表单字段访问为字符串 VBA



我有一个表单(比如(数据,其中包含文本框A,B,C。

我希望根据表单数据写一封电子邮件。在我的电子邮件正文中,我想要以下格式:

A是 :(表单文本框中 A 的实际值((换行符( B 是 : ((表单文本框中 B 的实际值( (换行符( C 是 :((表单文本框中 C 的实际值(。

我知道我可以通过表单访问值!数据!A_value(假设我将框命名为 A_value(。我无法将它们组合成一个字符串并添加换行符。

我尝试了以下方法:

Dim body as String
body = "A is : & Forms!Data!A_value &" & "B is : & Forms!Data!B_value &" & "C is : & Forms!Data!C_value &"

这是因为我在某处将 & 结果读到新行。

但是,当我这样做时,整个事情会按照代码中编写的方式连接起来,并且不会从表单字段中获取任何值。 请提出选项: 提前致谢

你可能想要这样的东西:

Dim body as String
body = "A is : " & Forms!Data!A_value & vbNewLine & _
"B is : " & Forms!Data!B_value & vbNewLine & _
"C is : " & Forms!Data!C_value 

注意:我使用行继续符在 3 行上编写该代码的事实与在输出中插入新行字符无关。 它也可以写成

body = "A is : " & Forms!Data!A_value & vbNewLine & "B is : " & Forms!Data!B_value & vbNewLine & "C is : " & Forms!Data!C_value 

但我发现这更难阅读。

与号用于连接文本"hello " & "there"

如果您引用与号,它什么也不做,只是复制与号"bits & bobs"

您可以使用字符 vbCrLf(回车符/换行符(添加(连接(换行符,"time for " & vbCrLf & "a break".

您可以使用的另一个技巧是创建一个带有值占位符的字符串模板,然后使用 Replace 语句填充它们,例如:

body = "A is: {A} & B is: {B} & C is: {C}"
body = Replace(body, "{A}", Forms!Data!A_value)
body = Replace(body, "{B}", Forms!Data!B_value)
body = Replace(body, "{C}", Forms!Data!C_value)

并分成多行,例如:

body = "A is: {A}{CR}B is: {B}{CR}C is: {C}{CR}"
body = Replace(body, "{A}", Forms!Data!A_value)
body = Replace(body, "{B}", Forms!Data!B_value)
body = Replace(body, "{C}", Forms!Data!C_value)
body = Replace(body, "{CR}", vbCrLf)

最新更新