首页 > 解决方案 > Excel VBA将公式插入单元格

问题描述

****更新****

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


我试图弄清楚如何使用 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

非常感谢任何帮助,因为这是一个非常独特的公式,我在网上找到的帮助不大。

标签: excelvbaexcel-formula

解决方案


如果您在活动工作簿中创建引用工作表,则“提示更新值的对话框”问题得到解决。如果你不能做到这一点,你将不得不发现你项目的更多秘密。

创建包含公式的字符串时的重要事项:字符串必须以等号 (=) 开头。所有引号都必须替换为 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

我希望这很有用。


推荐阅读