精华内容
下载资源
问答
  • VBA 判断元素是否在数组中
    万次阅读
    2016-11-27 22:08:47
    Sub macro1()
    Dim arr, i%
    arr = Array(1, 2, 3, 4, 5, 6)
    On Error Resume Next
    i = WorksheetFunction.Match(9, arr, 0)
    If i > 0 Then MsgBox "存在" Else MsgBox "不存在"
    End Sub


    更多相关内容
  • 复杂的代码开发过程,程序逻辑结构可能存在多个分支,有时需要判断变量是否为空,例如对于Range变量,可以使用如下代码。

    在复杂的代码开发过程中,程序逻辑结构可能存在多个分支,使用变量时,可能需要判断变量是否为空,例如对于Range变量,可以使用如下代码。

    Sub RangeDemo()
        Dim rngAll As Range
        Dim rng1 As Range
        Set rng1 = [a1:b3]
        If rngAll Is Nothing Then
            Set rngAll = rng1
        Else
            Set rngAll = Union(rngAll, rng1)
        End If
    End Sub
    

    【代码解析】
    第5行代码使用Is Nothing判断Range对象变量rngAll是否为空。
    如果为空,那么第6行代码使用Set关键字为对象变量赋值。
    如果不为空,那么第7行代码使用Union函数合并单元格区域。
    rngAll为空时,使用Union函数合并单元格区域,将产生错误号5的运行时错误。
    在这里插入图片描述

    但是Is Nothing仅适用于对象变量,无法判断普通变量和数组变量,有的同学知道VBA中有IsEmpty函数,从名字看似乎就是为此而生的,咱们测试一下。

    Sub demo1()
        Dim a() As Integer
        Dim b() As Variant
        Dim d As Integer
        Dim e As Variant    
        If IsEmpty(a) Then Debug.Print "整数数组a为空"
        If IsEmpty(b) Then Debug.Print "变体数组b为空"
        If IsEmpty(c) Then Debug.Print "未声明变量c为空"
        If IsEmpty(d) Then Debug.Print "整数变量d为空"
        If IsEmpty(e) Then Debug.Print "变体变量e为空"    
        c = 1
        e = 2
        If IsEmpty(c) Then Debug.Print "未声明变量为空" Else Debug.Print "c不为空"
        If IsEmpty(e) Then Debug.Print "变体变量为空" Else Debug.Print "e不为空"
    End Sub
    

    【代码解析】
    代码非常简单,用于测试不同变量的结果,输出结果如下。
    在这里插入图片描述

    IsEmpty函数仅适用于变体变量(未声明的变量,默认为变体变量),对于变体数组也不适用。第11至12行代码赋值后,第13至14行代码可以检测到变量不为空。


    那么到底如何判断数组是否为空呢?其实也不复杂,

    Sub demo2()
        Dim a() As Integer
        On Error Resume Next
        LB = LBound(a)
        If Err.Number = 9 Then
            Debug.Print "数组为空"
        Else
            Debug.Print "数组不为空"
        End If
        On Error GoTo 0
    End Sub
    

    【代码解析】
    第3行代码忽略运行时错误继续代码执行。
    第4行代码使用LBound函数读取变量的下标下界。
    如果数组为空,那么将产生错误号为9的运行时错误,第5行代码捕获错误,输出提示信息。
    第10行代码恢复系统错误处理机制。

    如果使用如下代码声明数组,数组中每个元素的值都为零,因此数组不为空。

    Sub demo3()
        Dim a(1 To 2) As Integer
        On Error Resume Next
        LB = LBound(a)
        If Err.Number = 9 Then
            Debug.Print "数组为空"
        Else
            Debug.Print "数组不为空"
        End If
        On Error GoTo 0
    End Sub
    
    展开全文
  • 我想问下,怎么判断通过dim arr()形式定义的数组有没有被赋值? 我网上查过,有说用isarray,isempty函数的。我实验了下,前真后假,没法判断。后来发现用 (not arr)是否为-1(if (not arr)<>-1 ) 这个...
  • vba-如何查找数组是否包含字符串

    千次阅读 2020-12-19 17:47:34
    可能重复:如何MS Access VBA数组中搜索字符串我目前正在处理Excel宏,但找不到解决方法Mainfram我写了以下内容,它给我消息“ Invalid Qualifier”,并If之后立即突出显示MainframDim Mainfram(4) As ...

    可能重复:

    如何在MS Access VBA数组中搜索字符串

    我目前正在处理Excel宏,但找不到解决方法Mainfram

    我写了以下内容,它给我消息“ Invalid Qualifier”,并在If之后立即突出显示Mainfram

    Dim Mainfram(4) As String

    Mainfram(0) = "apple"

    Mainfram(1) = "pear"

    Mainfram(2) = "orange"

    Mainfram(3) = "fruit"

    For Each cel In Selection

    If Mainfram.Contains(cel.Text) Then

    Row(cel.Row).Style = "Accent1"

    End If

    Next cel

    选择是一列

    有人帮忙吗?

    嗨,JP我尝试了您的建议,并说需要对象。 并突出了  如果IsInArray(cell.Text,Mainfram)然后这是我的完整代码

    Sub changeRowColor()

    Columns("B:B").Select

    Dim cel As Excel.Range

    Dim Mainfram(4) As String

    Mainfram(0) = "apple"

    Mainfram(1) = "pear"

    Mainfram(2) = "orange"

    Mainfram(3) = "Banana"

    For Each cel In Selection

    If IsInArray(cell.Value, Mainfram) Then

    Rows(cel.Row).Style = "Accent1"

    End If

    Next cel

    End Sub

    Function IsInArray(stringToBeFound As String, arr As Variant) As Boolean

    IsInArray = (UBound(Filter(arr, stringToBeFound)) > -1)

    End Function

    没关系,我发现了这个愚蠢的错误...反正谢谢你

    展开全文
  • 判断相同的标准是? 所有元素相同,不看排列,看组合 拆解特点 1 数组的元素个数相同,但不看次序 2 元素可能重复的话,不能只看不重复的元素 3 如1 1 2 3 不等于 1 2 33 ......

     

    判断相同的标准是?

    所有元素相同,不看排列,看组合

     

     

    • 拆解特点
    • 1 数组的元素个数相同,但不看次序
    • 2 元素可能重复的话,不能只看不重复的元素
    • 3 如1 1 2 3 不等于 1 2 33

     

     

     

    https://zhidao.baidu.com/question/540792935.html

    我觉得这个答案不太对

    展开全文
  • Dim arr() '声明一个动态的arr数组(不知道它能盛多少数据) Dim row_1 '声明数组大小的变量(通常是excel的有效行数) row_1 = Sheet1.[B65536].End(xlUp).Row...
  • 多维数组是经常用到的数据结构,判断数组中是否包含某个元素的常规办法就是变量整个数组,逐个对比。自定义函数如下: Function ItemInArrayLoop(aData, vEle) As Boolean ItemInArrayLoop = False For i = 1 ...
  • 大家好,我们今日继续讲解VBA代码解决方案的第61讲内容:在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法。在上一讲我们讲了使用数组函数将单元格的文本进行分隔后写入到工作表的方法,那么问题...
  • 判断二维数组中是否存在某值

    千次阅读 2019-09-16 23:59:59
    请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 思路: 从数组的左下角元素开始比较,若目标整数等于该元素,则返回true, 若目标整数大于该元素,则 x 右移。若目标整数小于该元素...
  • 1 数组嵌套的知识 1维数组的嵌套并非2维数组 二维数组的嵌套并非三维数组 2 数组的嵌套写法 1维数组的嵌套:arr(m)(i) 2维数组的嵌套:arr(m)(i,j) Sub test1001() Debug.Print "测试一维数组和其嵌套" '一...
  • 判断数组中是否包含另一数组

    千次阅读 2018-12-26 10:41:34
    //是否被包含,是返回true,不是返回false isContained =(a, b)=&gt;{ if(!(a instanceof Array) || !(b instanceof Array)) return false; if(a.length &lt; b.length) return false; var aStr = a.toString...
  • VBA数组的排序

    2021-09-13 16:12:32
    我们平时用的表格排序,只相对来说是在在表格的升序降序。今天就好奇如果系统实现排序 他是怎么实现的呢。 经过一番折腾查找,真是一看吓一跳,真是感觉蚂蚁看大象,发现排序分为: 今天仅整理了最简单的两种...
  • 如何判断动态数组为空?

    千次阅读 2021-03-15 03:17:55
    VBA开发时经常用到数组,但是如何判断数组是否为空,这里说的“空”指的是,动态数组声明后,但是未赋值之前的状态,【本地窗口】显示如下。 此时Dim语句已经执行完毕,可以认为已经完成了初始化,数组并无法...
  • VBA示例函数之 求人不如自已动手 统计数组中非重复数据个数,供初学者参考,大牛勿进~~~~~~~
  • VBA动态数组简单应用

    2021-01-18 12:35:36
    动态数组在VBA中,用于筛选大数据是比较好用的.当一行数据满足筛选要求时,将该行数据写入到新的数组中,逐维增加,最后再将这个新的数组输出到表格. 动态数组和一静态数组定义不同 静态数组定义: dim arr 动态数组...
  • 1 三维数组的正常定义 1.1 定义为静态数组 Sub test1001() '静态数组的方法定义三维数组 Dim arr1(3, 3, 3) N = 1 For I = 1 To 3 For J = 1 To 3 For K = 1 To 3 arr1(I, J, K) = N Debug.Print "arr...
  • 该函数检查相等长度的两个数组是否包含相同的元素,若包含相同的元素, 则返回1,否则返回0,其中参数len是数组a与与数组b的元素个数。 不考虑元素的顺序,如果元素重复,重复次数也相同。main函数读入两个整数数组,...
  • 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 自己的方法: 思路:双层遍历一个一个查找,我是智障嗯 function Find(target, array) { // write code here for...
  • '自定义函数,将数组中的元素连接起来(可以每个元素两边分别加字符) 'By Gao Dawei,2020-10-09 Function ArrayJoin(ByVal arr As Variant, Optional element_plugin_left As String = "", _ Optional element_...
  • 判断数组中是否存在某个值

    千次阅读 2019-09-28 11:01:51
    判断数组中是否存在某个值 方法一: for (int element : arr) { if (element == toCheckValue) { return true; } } 方法二: public static int binarySearch(byte[] a, byte key) 方法三: public boolean ...
  • VBA数组完全教程

    万次阅读 多人点赞 2017-06-25 11:45:15
    兰色幻想VBA数组入门教程10集 1. 前言:不要把VBA数组想的太神秘,它其实就是一组数字而已。 2. 数组的维数: Sub 数组示例() Dim x As Long, y As Long Dim arr(1 To 10, 1 To 3) '创建一个可以容下10行...
  • 最近遇到一个问题,给出一个有序的二维数组(方阵)(有序指的是对于每一行和每一列元素都是逐渐增大的),然后让你用最快的方法判断某个值是否在这个数组中,如果存在则返回True,反之返回False。例如给出的有序...
  • 如何计算一个元素在数组中出现的次数呢?本文通过基础写法和进阶写法进行讲解,还不会的小伙伴儿快来瞅瞅~ 一、需求 求以下数组中每个元素出现的次数,示例结果:{a: 1, b: 3, c: 3} let arr = ["b", "c","b", "c",...
  • 浅谈VBA中使用数组处理工作表数据

    千次阅读 2018-02-28 12:55:53
    这时经常用到的解决方法就是使用数组保存数据,内存进行数据处理和加工,最后一次行更新工作表,这样的操作方式往往会极大提升程序的运行效率。 读取数据 声明变量 首先如何声明用于保存单元格内容的...
  • //判断数组arr1的值是否在arr2存在 bool exists = ((IList)arr2).Contains(arr1[A].ToString()); if (exists) { } else { str2 += arr1[A].ToString(); } } MessageBox.Show(str2);//弹出的就是arr1...
  • 今天刚好学习支付宝 JS 框架 base.js 。瞄了一下,实现是这样的: 代码如下: if (value instanceof Array || (!(value instanceof Object) && (Object.prototype.toString.call((value)) == ‘[object Array]’) |...
  • 大家好,我们今日继续讲解VBA数组与字典解决方案第22讲:在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法。如果文本含有大量的重复值,此时,如果我们要剔除重复值,该怎么办?用VBA的方法该如何做到...
  • excel vba真正的动态数组实例 一、动态数组的定义  动态数组的定义,一开始不需要给数组标明上界和下界。直接定义即可,如下面的代码:  Dim MyStr() As String  这样,就定义了一个动态数组及其...
  • 随着字典讲解的深入,我们发现字典真的很神奇,在VBA代码,给人以十分清爽的感觉,这套数组与字典解决方案,我会尽可能的把经常用到的实例多多讲解给大家,让大家对于字典的理解更加深入.虽然这块内容利用其它方案都...
  • 但是在数组中VBA没有提供类sort方法用于排序.现在为了探究数组内排序的方法,我特意整理的一下VBA数组内排序的笔记分享给大家(如果是高手请无视).有不少地方将数组排序分成七种,十种,十五种,二十五种甚至有五十多种,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,224
精华内容 889
关键字:

vba判断是否在数组中