以下代码...
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))
...当超过 255 个字符时导致Output
等于“错误 2015” 。Formula
由于其他原因,我无法重铸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”,我仍然收到Output
“错误 2015”。
缩短公式确实解决了我的一些错误,但是这个特定的公式(220 个字符)仍然给我带来了问题。现在有什么想法吗?