标签: variant-array

循环遍历变量数组时是否不能将If语句与多个条件(AND / OR)一起使用?

背景:

在使用某些变体数组将数据根据条件分类到多个位置时,我注意到每次使用if语句将多个条件标记为false。这是用来创建字典的,尽管它从未涉及字典方面,因为仅在变量数组中循环时,响应错误。

我将它们移到两个单独的if语句中,并且一切正常。


题:

为什么在遍历变量数组中的数据时无法使用多条件if语句?


有问题的代码:

生成变体数组的通用代码:

Public ex_arr As Variant, ex_lr As Long, ex_lc As Long
Public dc As Scripting.Dictionary 

Private Sub capture_export_array()
    With Sheets("export")
        ex_lc = .Cells(1, .Columns.Count).End(xlToLeft).Column
        ex_lr = .Cells(.Rows.Count, ex_lc).End(xlUp).Row
        ex_arr = .Range(.Cells(1, 1), .Cells(ex_lr, ex_lc)).Value
    End With
End Sub
Run Code Online (Sandbox Code Playgroud)

导致False条件的代码(立即窗口打印= 0):

Private Sub find_unique_items()
    Set dc = New Scripting.Dictionary
    Dim i As Long
    For i = LBound(ex_arr) To UBound(ex_arr)
        If InStr(ex_arr(i, ex_lc), "CriteriaA") And InStr(ex_arr(i, 4), "CriteriaB") Then dc(ex_arr(i, 2)) = ex_arr(i, 3) …
Run Code Online (Sandbox Code Playgroud)

excel vba loops if-statement variant-array

6
推荐指数
1
解决办法
100
查看次数

标签 统计

excel ×1

if-statement ×1

loops ×1

variant-array ×1

vba ×1