繁体   English   中英

使用Excel VBA将Excel公式(Excel格式)粘贴到单元格中吗?

[英]Paste excel formula (excel format) in a cell using excel VBA?

如何仅在excel公式formate中的特定单元格中插入或粘贴大型excel公式。 我的项目中有一个很大的Excel表,无法计算。 还剩几天,它与当前日期和时间链接。 每当我从数据输入表单提交数据时,都必须在列中插入公式。 它会自动从当前工作表的不同单元格中收集值并进行计算。
但是在这里,我在公式行(即在双四元数“”处)得到“编译错误,语句的预期结尾”。

我可以直接在excel和drage中编写
要么
我可以为上述计算编写vba代码,但是由于我的项目要求,我必须插入公式。

有什么办法可以插入公式???? 我正在使用excel 2016

Set Fcell = formulaWks.Range("O7")

'formula = "=$A1+$B1"  ' example for testing
Formula = "=IF(YEAR(NOW())=$W$3,IF(ISBLANK($G7),"",IFERROR(IF(DATEDIF(TODAY(),$N7,"y")=0,"",DATEDIF(TODAY(),$N7,"y")&" y ")&IF(DATEDIF(TODAY(),$N7,"ym")=0,"",DATEDIF(TODAY(),$N7,"ym")&" m ")&IF(DATEDIF(TODAY(),$N7,"md")=0,"",DATEDIF(TODAY(),$N7,"md")&" d"),"wrong date")),"Package completed")"
Fcell = ActiveCell.formula

您需要先通过在字符串中两次添加双引号来对字符串中的双引号进行转义ISBLANK($G7),""""

然后使用这样的公式

Range("O7").Formula = "[Your formula with escaped double quotes]" 

尝试下面的代码,它将与您要测试的基本公式一起使用。

Option Explicit

Sub InsertFormula()

Dim formulaWks As Worksheet
Dim Fcell As Range
Dim FormulaString   As String

' modify "Sheet1" to your sheet's name     
Set formulaWks = Worksheets("Sheet1")
Set Fcell = formulaWks.Range("O7")

FormulaString = "=$A1+$B1"  ' example for testing
Fcell.Formula = FormulaString

End Sub

关于您的“长”公式,下面的公式字符串通过:

FormulaString = "=IF(YEAR(NOW())=$W$3,IF(ISBLANK($G7)," & Chr(34) & Chr(34) & ",IFERROR(IF(DATEDIF(TODAY(),$N7," & Chr(34) & "y" & Chr(34) & ")=0," & Chr(34) & Chr(34) & ",DATEDIF(TODAY(),$N7," & Chr(34) & "y" & Chr(34) & ")&" & Chr(34) & " y " & Chr(34) & ")" & _
                "&IF(DATEDIF(TODAY(),$N7," & Chr(34) & "ym" & Chr(34) & ")=0," & Chr(34) & Chr(34) & ",DATEDIF(TODAY(),$N7," & Chr(34) & "ym" & Chr(34) & ")&" & Chr(34) & " m " & Chr(34) & ")" & _
                "&IF(DATEDIF(TODAY(),$N7," & Chr(34) & "md" & Chr(34) & ")=0," & Chr(34) & Chr(34) & ",DATEDIF(TODAY(),$N7," & Chr(34) & "md" & Chr(34) & ")&" & Chr(34) & " d" & Chr(34) & ")," & _
                Chr(34) & "wrong date" & Chr(34) & "))," & Chr(34) & "Package completed" & Chr(34) & ")" 

Debug.Print FormulaString ' for debug, to see the Formula string in the immediate window

注意:“长”公式的最终版本已由YowE3K编辑-如果不起作用,请怪我(即YowE3K)而不是Shai。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM