excel - 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
非常感谢任何帮助,因为这是一个非常独特的公式,我在网上找到的帮助不大。
解决方案
如果您在活动工作簿中创建引用工作表,则“提示更新值的对话框”问题得到解决。如果你不能做到这一点,你将不得不发现你项目的更多秘密。
创建包含公式的字符串时的重要事项:字符串必须以等号 (=) 开头。所有引号都必须替换为 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
我希望这很有用。
推荐阅读
- vue.js - Vue 组件正在将我路由到另一个组件
- azure-databricks - 如何使用 Databricks(Python) 将 CSV 写入 Azure Storage Gen2
- constraint-programming - 优化 MiniZinc 中的多个目标
- python - 使用 matplotlib 覆盖多个颜色图
- excel - 我的函数只适用于整数
- javascript - 如何从 github repo 更新 heroku 应用程序(Node js)?
- c# - 合并 C# 列表中的重复条目
- r - 如何打印 pubr::compare_means 的结果?
- java - 使用 plink -shareexists 向先前与 Java 建立的连接发送命令
- java - Spring bean 创建生命周期:为什么有多个交互点?