Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 是否有任何直接API可以在订单变量(a,b)的变体中找到相同索引的匹配项?_Vba_Excel_Ado - Fatal编程技术网

Vba 是否有任何直接API可以在订单变量(a,b)的变体中找到相同索引的匹配项?

Vba 是否有任何直接API可以在订单变量(a,b)的变体中找到相同索引的匹配项?,vba,excel,ado,Vba,Excel,Ado,我有一个变量,比如说var(9175)(使用ADO对象读取excel获得),其中9表示列,175表示行,填充了一些数据 如何根据从其他工作簿中获取的3列(对于同一行),检索整行数据(对于每个列值,行号将是相同的,明显的)。因此,匹配的键将是来自其他工作簿的这3列值 我不想执行循环操作,因为它会很耗时 示例:在variantvar中,我在第二行获得了一些数据,如下所示: #125 a [68] :1 [197] :2 1 1645 123 从其他工

我有一个变量,比如说var(9175)(使用ADO对象读取excel获得),其中9表示列,175表示行,填充了一些数据

  • 如何根据从其他工作簿中获取的3列(对于同一行),检索整行数据(对于每个列值,行号将是相同的,明显的)。因此,匹配的键将是来自其他工作簿的这3列值
  • 我不想执行循环操作,因为它会很耗时
  • 示例:在variantvar中,我在第二行获得了一些数据,如下所示:

    #125    a    [68]    :1    [197]    :2    1    1645    123
    
    从其他工作簿中,我将数据取为:

    [68]    :1    [197]
    
    基于这3个值,
    如何完全基于一些查找或匹配命令直接获取第二行的数据?

    我不清楚您到底想做什么,但如果您知道要从中获取整行的数组中的行号,则可以使用
    工作表.Index
    函数

    下面是一个使用虚拟2D数组的示例:

    Sub test()
    
      'Assign a 2D array
      Dim my2DArray() As Variant
      my2DArray() = [{1,2,3;4,5,6;7,8,9}]
    
      Const DESIRED_ROW As Long = 2
    
      'Use the Worksheet.Index function to extract an individual row
      Dim myRow() As Variant
      myRow = Application.WorksheetFunction.Index(my2DArray, DESIRED_ROW, 0)
    
      Debug.Print Join(myRow, ",") 'Prints 4,5,6
    
    End Sub
    

    在VBA中,设计良好的循环通常是最有效的solution@chrisneilsen问题是我不能让4个循环一起运行以匹配数据,一个来自ADO变量,另一个来自第二个工作表。
    Filter()
    请参阅“帮助”。@在其描述中,它说,“如果sourcearray为Null或多维,则函数将引发错误“。在我的例子中,数组是多维的。这是如何生成的,这里的整个过程是什么?我不想通过索引来搜索行!我需要通过搜索该行中的特定列来获取该行的数据。希望你现在明白了。