2017-10-11 31 views
0

我正嘗試使用.Formula將公式插入新創建的最後一個ListRows。 該代碼段工作在上一個ListRows中使用帶有變量的.Formula

oNewRow.Range(0, 2).Formula = "=IF(COUNTIF(A:A,[@PRODNAME])<=1,""100-"" & CHAR(72) & ""-0""&COUNTIF(A:A,[@PRODNAME]),)" 

該公式變爲在沒有問題,但我需要的CHAR(),以由可變來表示。

謝謝。

Dim cChr As Integer 
Dim tbl As ListObject 
Dim tblRows As Integer 
Dim oNewRow As ListRow 



Set tbl = ThisWorkbook.Worksheets("100-0-00").ListObjects("TBL_tertiary129") 


Set oNewRow = tbl.ListRows.Add(AlwaysInsert:=True) 

tblRows = tbl.ListRows.Count 


cChr = (65 + tblRows - 2) 'Increment alpha value based on position 

MsgBox (Chr(cChr)) 


oNewRow.Range(0, 2).Formula = "=IF(COUNTIF(A:A,[@PRODNAME])<=1,""100-"" & CHAR(" & cChr & ")""-0"" &COUNTIF(A:A,[@PRODNAME]),)" 'Problem with Formula within Quotes  
+0

你得到什麼錯誤? – JNevill

+0

1004應用程序定義或對象定義的錯誤 – James007

回答

1

看起來像你缺少一個&符。目前,如果cChr設置爲72的公式將是:

=IF(COUNTIF(A:A,[@PRODNAME])<=1,"100-" & CHAR(72)"-0" &COUNTIF(A:A,[@PRODNAME]),) 

你會看到存在CHAR(72)後無符號與"-0"來連接它。相反:

oNewRow.Range(0, 2).Formula = "=IF(COUNTIF(A:A,[@PRODNAME])<=1,""100-"" & CHAR(" & cChr & ") & ""-0"" &COUNTIF(A:A,[@PRODNAME]),)" 

這是很容易開捕,如果你回聲出眼前的窗格中的級聯的結果:

debug.print "=IF(COUNTIF(A:A,[@PRODNAME])<=1,""100-"" & CHAR(" & cChr & ")""-0"" &COUNTIF(A:A,[@PRODNAME]),)" 

之前在吊起它的範圍內的.formula和挑一些神祕的Excel中的錯誤。

+0

謝謝JNevill!就是這樣。一個失蹤的「&」。非常感謝! – James007

+0

很高興做到了這一招! – JNevill

相關問題