如何绕过/缩小此数组公式的字符?
Dim ulr As Long
With Worksheets("Usages")
ulr = .Cells(.Rows.Count, "B").End(xlUp).Row
End With
Range("AP2").FormulaArray = _
"=IFERROR(INDEX('Usages'!A2:G " & ulr & ",MATCH(1,('Usages'!F2:F " & ulr & "=""No"")*('Usages'!C2:C " & ulr & "=N2)*('Usages'!D2:D " & ulr & "<=AO2)*('Usages'!E2:E " & ulr & ">=AO2),0),2),""Not Found"")"
答案 0 :(得分:0)
对于这种特殊情况,在附加字符串之前删除多余的间距可以解决问题。改变这个:
"=IFERROR(INDEX('Usages'!A2:G " & ulr & ",MATCH(1,('Usages'!F2:F " & ulr & "=""No"")*('Usages'!C2:C " & ulr & "=N2)*('Usages'!D2:D " & ulr & "<=AO2)*('Usages'!E2:E " & ulr & ">=AO2),0),2),""Not Found"")"
到此:
"=IFERROR(INDEX('Usages'!A2:G" & ulr & ",MATCH(1,('Usages'!F2:F" & ulr & "=""No"")*('Usages'!C2:C" & ulr & "=N2)*('Usages'!D2:D" & ulr & "<=AO2)*('Usages'!E2:E" & ulr & ">=AO2),0),2),""Not Found"")"
<强>推理:强>
使用硬编码值而不是变量时没有问题。但是,ulr
变量可能与先前硬编码的值相同。最终字符串值的长度不应该有任何不同。由于字母和数字之间的间距过大而导致出现问题,或者行号足够大,导致最终字符串太长,并且添加了额外的空格。
我倾向于认为问题是由前者引起的(假设为ulr = 10000
,最终的字符串长度大约为165个字符)。但是,如果它是由后者引起的,那么如果行数增加到足以在计数中添加另一个数字,则会再次出现问题。