以下代码......
Dim Formula As String
Dim Output As String
Formula = "IF(ISBLANK(VLOOKUP(D3, SCALES!N:P, 2, FALSE)), CONCATENATE(""PY "", IF(LEFT(BM3,4) = ""PPY "", RIGHT(BM3,LEN(BM3)-4), BM3) / VLOOKUP(D3, SCALES!N:P, 3, FALSE)), IF(LEFT(M3) = ""PPY "", CONCATENATE(""PPY "", RIGHT(M3, LEN(M3) - 4) / VLOOKUP(D3, SCALES!N:P, 2, FALSE)), M3 / VLOOKUP(D3, SCALES!N:P, 2 FALSE)))"
Output = CStr(Sheet1.Evaluate(Formula))
...当Output
超过255个字符时,Formula
等于“错误2015”。
由于其他原因,我不能将Output
改为Double。那么,如何将Evaluate()
调用的结果转换为字符串而不将公式截断为255个字符?
当...
Formula = "IF(ISBLANK(SCALES!L3),""PY ""&IF(LEFT(BM2,4)=""PPY "",RIGHT(BM2,LEN(BM2)-4),BM2)/VLOOKUP(D2,SCALES!K:M,3,FALSE),IF(LEFT(M2)=""PPY "",""PPY ""&RIGHT(M2,LEN(M2)-4)/VLOOKUP(D2,SCALES!K:M,2,FALSE)),M2/VLOOKUP(D2,SCALES!K:M,2,FALSE))"
......并且L3为空白,BM2为“40430”,D2为“TX”,M2为“41197”我仍然获得“{2015”错误Output
。
缩短公式确实解决了我的一些错误,但是这个特殊的公式(220个字符)仍然给我带来了问题。关于这个的任何想法,现在?
答案 0 :(得分:4)
事实上,您遇到了Excel中的限制 - Evaluate方法只接受最多255个字符的字符串。您有几个选择: