簡體   English   中英

Excel公式中的SQL語法錯誤

[英]SQL syntax error in excel formula

我有一個VBA公式,導致我的excel宏無法運行。 它給出語法錯誤; 但沒有細節。 誰能看看我的問題可能是什么? 我會很感激。

謝謝。

ActiveCell.FormulaR1C1 = "=IF(
RC[-14]=RC[-11],RC[-14]&"" is Head of Household
at ""&IF(RC[-6]="""",RC[-9]&"",
    ""&RC[-8]&"",""&RC[-7],RC[-6]&"",""&RC[-9]&"",""&RC[-8]&"",""&RC[-7]),
IF(RC[-12]=""Cen-Head"",""Head of Household at
 ""&IF(RC[-6]="""",RC[-9]&"",
""&RC[-8]&"",""&RC[-7],RC[-6]&"",
""&RC[-9]&"",""&RC[-8]&"",""&RC[-7]),
""Enumerated with ""
&IF(RC[-6]="""",(RC[-14]&"" at
""&RC[-9]&"",""&RC[-8]&"",""&RC[-7]),
(RC[-14]&"" at ""&RC[-6]&"",""&RC[-9]&"",""&RC[-8]&"",""&RC[-7]))
)"

不確定標題為何提到SQL,公式中沒有。

除此之外,我不確定您是否能解決這個問題,但是問題似乎是括號不匹配,特別是您需要在公式末尾添加一個額外的結束括號。

雖然這個公式相當混亂,所以我可能已經錯過了其他東西。 盡管確實花了大約30分鍾試圖清理它以便更易讀,但我還是不得不把毛巾扔了。 因此,我強烈建議:

  • 將IF邏輯移到您的宏代碼中,然后在其中確定值,然后對其進行硬設置(即,設置單元格的.Value而不是.Formula
  • 在工作簿中某個廢棄的單元格中填寫公式的工作版本,然后僅使用復制粘貼將公式應用於實際需要的位置

由於我沒有關於公式的用途以及宏在做什么的任何上下文,因此我無法確定哪種情況會更好。 但是,這兩種方法都比嘗試使用現有的方法要好。

我將建議幾件事,作為使VBA中的設置公式更整潔,更易於閱讀的方法,以備將來使用。 1)您在很多地方都需要在公式中出現“”。為了便於閱讀,我發現最好聲明一個變量並將其設置為“”,如下所示:

Dim dq as string
dq = chr(34) 'chr 34 is the unicode value for "

2)由於我們使用VBA代碼填寫公式,因此使用&代替使用CONCATENATE公式會使事情變得很難理解(這是VBA還是公式的串聯)? 因此,您僅應將&用於VBA串聯,並在實際的公式字符串內使用CONCATENATE

暫無
暫無

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

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