第一列范围名称为“ D”,范围为A1:A900000。
第二列范围名称为“ S”,范围为B1:B900000。
我想这样评估他们:
dataSheet.evaluate("IF(D=""DISPENSER"",S,FALSE)")
但是,当列的行数超过255时,评估返回“错误2015”。
如果这些列的行数超过255,我将公式更改为
dataSheet.evaluate("IF(A2:A256=""DISPENSER"",B2:B256,FALSE)")
它工作正常,但仅返回前255个评估行。
我有很多解决方法,但是找不到使用所有列作为参考的方法。
代码示例:
Option Explicit
Sub Example()
Dim arr As Variant
Dim formula As String
dataSheet.Columns("A").Name = "D" 'DISPENSER COLUMN
dataSheet.Columns("B").Name = "S" 'SELLER COLUMN
formula = "=IF(D=""DISPENSER"",S,FALSE)"
arr = filter(Application.Transpose(dataSheet.Evaluate(formula)), False, False)
'CODE USING FILTER ARRAY
End Sub
请假设在
分配器列具有以下值:“ DISPENSER”和“ OLD DISPENSER”。
卖方列包含“ S”和行号。(“ S1”,“ S2”,[...])