Excel VBA将公式插入单元格

时间:2018-08-22 18:30:12

标签: excel-vba excel-formula

****更新****

我设法使代码正常工作,但是,每次我尝试运行它时,在另一本工作簿中,都会弹出一个对话框,提示您更新值。我不希望它带来原始表中的值。我希望它使用我在公式中引用的单元格和表格。


我试图弄清楚如何使用VBA代码将公式放入特定单元格“ I8”中。我尝试了几种不同的方法来做到这一点。我在网上进行了调查,发现以下代码:

Worksheets("SheetName").Range("I8").Formula =

我可以用它来做一些基本的事情,例如一个单元格范围之和以及类似的事情。我需要放的东西太长了,它把字符串,新段落和单元格引用都放在了一起。

该公式会捕获大量不同的信息,并将其以一种简洁的电子邮件格式保存,因此我要做的就是复制该单元格“ I8”并将其粘贴到电子邮件正文中。

这是我在“ I8”单元格中有效的公式。我需要做的就是弄清楚如何使其与上面的VBA代码一起使用:

=("Good " & $C$2) & CHAR(10) & CHAR(10) & References!C1 & CHAR(10) & CHAR(10) & "Service Channel WO#:  " & $C$4 & CHAR(10) & "Location:  " & $C$5 & CHAR(10) & "SLM Work Order Number:  " & $C$6 & CHAR(10) & CHAR(10) & References!C2 & $C$7 & CHAR(10) & CHAR(10) & References!C3 & CHAR(10) & CHAR(10) & References!C4

任何帮助都非常感激,因为这是一个非常独特的公式,而我在网上发现的帮助不大。

1 个答案:

答案 0 :(得分:0)

如果您创建“对话盒说要更新值”问题,则此问题已解决 活动工作簿中的参考工作表。如果你做不到,你会的 必须发现您项目的其他秘密。

创建包含公式的字符串时的重要事项: 字符串必须以等号(=)开头。 所有引号必须替换为chr(34)。 (以Excel使用CHAR函数的方式,VBA使用Chr函数的方式:  Excel中的CHAR(34)与VBA中的Chr(34)相似。) 结果是以下代码:

Sub TheFormula()
Dim Str1 As String
Dim rRange as Range
Set rRange = ActiveSheet.Range("I8")
Str1 = "=("
Str1 = Str1 & Chr(34) & "Good "
Str1 = Str1 & Chr(34) & " & $C$2) & CHAR(10) & CHAR(10) & References!C1 &"
Str1 = Str1 & " CHAR(10) & CHAR(10) & "
Str1 = Str1 & Chr(34) & "Service Channel WO#:  "
Str1 = Str1 & Chr(34) & " & $C$4 & CHAR(10) & "
Str1 = Str1 & Chr(34) & "Location:  "
Str1 = Str1 & Chr(34) & " & $C$5 & CHAR(10) & "
Str1 = Str1 & Chr(34) & "SLM Work Order Number:  "
Str1 = Str1 & Chr(34) & " & $C$6 & CHAR(10) & CHAR(10) & References!C2 &"
Str1 = Str1 & " $C$7 & CHAR(10) & CHAR(10) & References!C3 & CHAR(10) &"
Str1 = Str1 & " CHAR(10) & References!C4"
rRange.Formula = Str1
End Sub

我希望这是有用的。