簡體   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