从Excel工作表中提取HTML字符串并更新其中的VBA变量

时间:2018-03-09 16:58:47

标签: excel vba excel-vba

我需要从Excel工作表中提取HTML字符串,并在发送为电子邮件之前使用当前值更新该字符串中的变量。

让我用一个例子来解释一下: 我的工作表有一个单元格(A1和B1),其值为:

  IMEI: " & Me.IMEI & "<br>
  Name: " & Me.FullName & "<br>

在VBA中,我正在创建一个String,它将成为电子邮件的正文:

  Body = Body & Worksheets("Worksheet").Range("A1").Value<br>
  Body = Body & Worksheets("Worksheet").Range("B1").Value<br>

现在,在VBA中,Me.IMEI和Me.Fullname是从Userform (e.g. "12.345678.876543.2" and "User, Test")中提取的正确值,我想用实际值更新字符串,而不是 - 现在发生 - Me.IMEI和Me.Fullname被插入到正文中。

或者,有没有更好的方法来完成这项不需要对宏中的电子邮件文本进行硬编码? (我必须让我们的中心办公室签署宏,并且希望能够更改所创建的电子邮件的文本,而不必在每次发生时都将其重新签名。)

2 个答案:

答案 0 :(得分:0)

如果我正确理解了评论,并且Me.IMEI是用户表单上的用户输入,那么您是否只能写出假设的单元格A1和...的值。 B1动态使用以下?

Sheet1.Cells(1,1).Value = "IMEI: " & Chr(34) & " & " & Me.IMEI.Value & " & " & Chr(34) & "<br>"

根据用户形式控制Me.IMEI以及您要提取的内容,您可能需要Me.IMEI.value或.caption或.text

答案 1 :(得分:0)

此时,只需使用一系列REPLACE()语句来捕获我可能想要使用的所有标记。看起来似乎是一种相当糟糕的方式,但它比在宏本身中硬编码(因而无法编辑)的电子邮件文本更具动态性。希望我能为我的下一个版本提供更优雅的解决方案。