簡體   English   中英

在VBA中添加公式-語法錯誤

[英]add formula in vba - syntax error

我試圖記錄一個宏。 我在excel中的公式是:

=IF(AND(OR(B2={"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15 ","16 "}),OR(J2={"Q1","Q2","Q3","Q4"})),CONCATENATE(J2," ",IF(K2="p","pre",""),"-"," ",IF(A2="",0,A2)),"")

(此公式基本上根據季度和類型更改了我的產品名稱,同時考慮了前幾個季度)

注意:一旦我記錄下來。 在vba中看起來像這樣:

Selection.FormulaR1C1 = _ "=IF(AND(OR(RC[-6]={""1"",""2"",""3"",""4"",""5"",""6"",""7"",""8"",""9"",""10"",""11"",""12"",""13"",""14"",""15 "",""16 ""}),OR(RC[2]={""Q1"",""Q2"",""Q3"",""Q4""})),CONCATENATE(RC[2],"" "",IF(RC[3]=""p"",""pre"",""""),""-"","" "",IF("& _ """",0,RC[-7])),"""")"

但是,它給了我一個語法錯誤...怎么了?

謝謝

唯一有問題的是"& _部分。應將其替換為RC[-7]= 。請參見下面的更正的行。

Selection.FormulaR1C1 = _
        "=IF(AND(OR(RC[-6]={""1"",""2"",""3"",""4"",""5"",""6"",""7"",""8"",""9"",""10"",""11"",""12"",""13"",""14"",""15 "",""16 ""}), OR(RC[2]={""Q1"",""Q2"",""Q3"",""Q4""})), CONCATENATE(RC[2],"" "",IF(RC[3]=""p"",""pre"",""""),""-"","" "",IF(RC[-7]="""",0,RC[-7])),"""")"

IF(A2="",0,A2)),"")正在轉換為IF(""",0,RC[-7])),"""")

假設您的原始公式在Range("H2")

"=IF(AND(OR(RC[-6]={""1"",""2"",""3"",""4"",""5"",""6"",""7"",""8"",""9"",""10"",""11"",""12"",""13"",""14"",""15 "",""16 ""}),OR(RC[2]={""Q1"",""Q2"",""Q3"",""Q4""})),CONCATENATE(RC[2],"" "",IF(RC[3]=""p"",""pre"",""""),""-"","" "",IF(RC[-7]="""",0,RC[-7])),"""")"

使用公式競爭者時,我看不到需要用引號將數字引起來

"=IF(AND(OR(RC[-6]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}),OR(RC[2]={""Q1"",""Q2"",""Q3"",""Q4""})),CONCATENATE(RC[2],"" "",IF(RC[3]=""p"",""pre"",""""),""-"","" "",IF(RC[-7]="""",0,RC[-7])),"""")"

不要在雙轉義模式""""的中間開始連續行。 我更喜歡在可能的情況下將它們放在語句之間

將公式轉換為R1C1表示法的最簡單方法是使用即時窗口

?Chr(34)和Replace(Range(“ H2”)。FormulaR1C1,chr(34),Chr(34)&Chr(34))和Chr(34)

在此處輸入圖片說明

盡可能在立即窗口中構建和測試您的字符串。 錯誤時會抱怨

在此處輸入圖片說明

編寫串聯時,甚至可以在立即窗口中使用創建變量

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM