VBA评估公式行限制

时间:2018-08-06 14:04:38

标签: vba excel-vba

  • 我有两个具有900.000行的数据列
  • 每个单元格都有一个字符串
  • 某些单元格具有相等的值

第一列范围名称为“ 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”,[...])

0 个答案:

没有答案