将这个二维数组导入内存后,存储到一个二维数组里,查找其中一个数组成员,返回其在表格中的地址.

如找44,返回M20

Function FindAll(outDict As Object, what As String, scrRngs As Range, Optional isOne As Boolean = False)
'what       参数2: 要查找的数据
'scrRngs    参数3: 查找的范围 , 包含二维数组或一维数组的单元格
'outDict    参数1: 考虑会有多个结果,使用字典存储单元格地址
'                   key存储单元格地址,item存储数组坐标
'isOne      参数4: 可选,默认是False.设置True,找到一个结果后就结束.
    If scrRngs.Count < 2 Then   '如果传进来的单元格只有一个
        If what = scrRngs.Value Then
            outDict.Add scrRngs.Address, "1-1"
            FindAll = True
            Exit Function
            FindAll = False
            Exit Function
        End If
        arr = scrRngs.Value
        arr_min = LBound(arr)           '数组最小元素
        arr_max_row = UBound(arr)       '二维数组的最大行数
        arr_max_col = UBound(arr, 2)    '二维数组的最大列数
        FindAll = False
        For Row = 1 To arr_max_row
            For col = 1 To arr_max_col
                If CStr(arr(Row, col)) = CStr(what) Then
                    outDict.Add scrRngs.Cells(Row, col).Address, Row & "-" & col
                    FindAll = True
                    If isOne Then Exit Function
                End If
    End If
End Function
Function FindColumn(outDict As Object, what As String, scrRngs As Range, Optional Column As Integer = 1, Optional Offset As Integer = 0, Optional isOne As Boolean = False)
'what       参数2: 要查找的数据
'scrRngs    参数3: 查找的范围 , 包含二维数组或一维数组的单元格
'Column     参数4: 在哪一列查找
'outDict    参数1: 考虑会有多个结果,使用字典存储单元格地址
'                   key存储单元格地址,item存储偏移后单元格地址
'Offset     参数5: 找到后向左右偏移的量,正数向右,负数向左
'isOne      参数6: 可选,默认是False.设置True,找到一个结果后就结束.
    If scrRngs.Count < 2 Then   '如果传进来的单元格只有一个
        If what = scrRngs.Value Then
            outDict.Add scrRngs.Address, "1-1"
            FindColumn = True
            Exit Function
            FindColumn = False
            Exit Function
        End If
        arr = scrRngs.Value
        arr_min = LBound(arr)           '数组最小元素
        arr_max_row = UBound(arr)       '二维数组的最大行数
        arr_max_col = UBound(arr, 2)    '二维数组的最大列数
        If Column + Offset > arr_max_col Then   '要查找的列大于列数是错误的
            FindColumn = False
            MsgBox ("要查找的列或向右偏移量过大")
            Exit Function
        End If
        If Column + Offset < 1 Then '向左偏移量过大
            FindColumn = False
            MsgBox ("向左偏移量过大")
            Exit Function
        End If
        FindColumn = False
        For Row = 1 To arr_max_row
            If CStr(arr(Row, Column)) = CStr(what) Then
                outDict.Add scrRngs.Cells(Row, Column).Address, scrRngs.Cells(Row, Column + Offset).Address
                FindColumn = True
                If isOne Then Exit Function
            End If
    End If
End Function
Sub ddd()
    Dim Rngs As Range   '函数的参数规定了数据类型
    Dim outRng As Range '这里就一定要定义数据类型
    Dim sh As Worksheet
    Dim dict As Object
    Set dict = CreateObject("Scripting.Dictionary")
    Set sh = Worksheets("Sheet3")
    Set Rngs = sh.Range("J12:N31")
    dict.RemoveAll
    success = FindColumn(dict, "3", Rngs, 3, -1, True)
    If b And dict.Count > 0 Then
        a = dict.keys()
        b = dict.items()
    End If
End Sub
(1)先选取数组中左下角的数字。如果该数字等于要查找的数字,则查找结束;如果该数字大于要查找的数字,则剔除数字所在行;如果该数字小于要查找的数字,则剔除数字所在。逐渐缩小查找的范围,最后确定结果。
class Solution {
public:
    bool Find(int target, vector<vector<int> > array) ...
其次,给数组赋值,可以是经过一系的运算后再赋值给数组。
最后,将数组返回到工作表区域中。最终的目的是在工作表中显示我们想要的结果。
3、调试数组的手段:本地窗口
我们可以通过设置Stop语句,或F8逐步执行代码,在本地窗口中观测数组的变化
				
题目二维数组中的查找在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。例如: 1,2,5 3,4,9 7,8,213*3的数组解答思路从二维数组的右上角的元素开始判断,因为此元素是它所在行的最大数,是它所在的的最小数。如果它等于要查找的数字,则查找过程结束。如果它大于要查找的数
'仿制简单的SQL查询语句,用于对二维数组的查询 '参照SQL语句:Select * From array [Where conditions] [Distinct fields] [ResultWithTitle] '实现功能: ' 依条件设置查询数组,返回包含查询字段(或全部字段)的数组,可多条件组合。 ' 条件运算符包括:> = < >= <= <> , like(正则表达式) ' 使用此函数,需要在文件中引用正则表达式脚本 Microsoft VBScript Regular Expressions x.x ' (根据不同的电脑配置和环境此处会有差异) '算法简要: ' 1、查询条件运算符:仅有 >, =, <, >=, <=, <> , like(正则表达式) ' 本函数中仅有上述运算符。原因在于,更多的运算符编制逻辑过于复杂,又不太常用。 ' 为了尽可能多地容纳各种运算关系,添加了正则表达式匹配运算, ' 在某个单一条件中,正则几乎可以容纳绝大部分的比对运算关系了。 ' 2、数字比较: ' 采用了将数字型字符串类型转换为数字之后再比较的方法,结果更为准确。 ' 3、其他算法和运算速度: ' 编制过程中,试验过使用 正则+逻辑分支+表达式引用 的方法, ' 可以实现几乎等同于SQL查询语句的复杂功能,而且代码更简捷。 ' 但运算速度相差过于悬殊(大概几十到上百倍 - "一闪而过"和"一袋烟"的差距!),最后不得不放弃。 ' 所以现在的版本相当于一个简化了的select语句,但对于大多数查询情况而言够用了。
(Visual Basic Application) VBA(Visual Basic for Application)是Microsoft Office系软件的内置编程语言,其语法结构与Visual Basic编程语言互相兼容,采用的是面向对象的编程机制和可视化的编程环境。 第一节 标识符 标识符是一种标识变量、常量、过程、函数、类等语言构成单位的符号,利用它可以完成对变量、...
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 剑指offer的思路.就是比较矩阵的右上角的数与target的大小,如果target比这个矩阵右上角的数大,由于矩阵的右上角元素A是A所在行的最大的值,所以target肯定不在A所在的行了...
题目:在一个二维数组中,每一行都按照从左往右递增的顺序排序,每一都是按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否拥有这个数字。 例如:下面这个数组就是每行每都是递增排序,如果在这个数组查找7,则返回true, 查找数字5,因为数组中不含有该数字,则返回false。1 2 8 9 2 4 9