vba数组用法(vba中数组怎用)

2025-08-13 12:15:01 0

vba数组用法(vba中数组怎用)

“vba数组用法”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看vba数组用法(vba中数组怎用)!

本文目录

vba中数组怎用

  • 打开Excel表格,点击菜单栏上边的【开发工具】、【Visual Basic】打开VBA器。

    请点击输入图片描述

  • 在VBA器的菜单栏上边点击【插入】、【模块】。

    请点击输入图片描述

  • 在模块的代码窗口里边输入以下使用Array数组的程序代码。对比之前的VBA程序代码,将会发现后面的程序比较简洁。

    Sub CreateText2()

    Dim i, j, k, arr

    On Error Resume Next

    Set mysheet1 = ThisWorkbook.Worksheets("Sheet1")

    Set fs = CreateObject("Scripting.FileSystemObject")    ’对计算机系统文件进行访问

    Set fi = fs.CreateTextFile("d:\Code12345.txt", True)   ’在D盘里边创建Code12345.txt文本文件

    arr = Array("", "uid=", "last_name=", "frist_name=", "accessibility=", _

    "password=", "SAPME:DEFAULT SITE=", "role=", "group=") ’把固定内容写入数组里边

    For i = 1 To 1000  ’从第一行到1000行

    k = Application.WorksheetFunction.CountIf(mysheet1.Range(mysheet1.Cells(i, 1), _

    mysheet1.Cells(i, 8)), "")    ’统计空白单元格的个数

    If k = 0 Then                ’如果单元格空白个数为0则:

    j = 0                       ’j初始化,数组从0调用

    fi.WriteLine (arr(j))       ’把数组里边内容写入文本文档

    For j = 1 To 8             ’从第一列到第八列

    fi.WriteLine (arr(j) & mysheet1.Cells(i, j))  ’从数组和单元格获取内容写入文本文档

    Next

    End If

    Next

    fi.Close

    End Sub

    请点击输入图片描述

    请点击输入图片描述

  • VBA程序代码解读:

    (1)For……Next循环嵌套使用时,外边的For执行一次,待内部的For执行完了之后再执行外边For一次,如此循环,外边的For执行完了之后,循环结束。

    (2)Array是数组函数,里边的参数通常是由逗号(,)间隔,其对应值的序号是从0开始的。如:arr=Array("AA","BB","CC"),arr(1)的值为数组里边的第二个(即"BB")。

    (3)如果要数组里边对应的值,则点击【视图】、【本地窗口】,再按下【F8】键逐行运行程序,过了数组程序行便可以在“本地窗口”的展开数组里边看到相应的值。

    请点击输入图片描述

    请点击输入图片描述

  • 运行VBA程序,其执行的结果都是一样的。

    请点击输入图片描述

vba中函数使用数组问题

在工作表输入countif函数时候,第一个参数明确告诉你是range,如图

所以你那样引用是不对的,比如以下代码肯定是不行的

Sub test()
    Dim a
    a = Array(1, 2, 3)
    MsgBox Application.CountIf(a, 1)
End Sub

如果你要用这个函数,必须把数组写入单元格,再引用,如下

Sub test()
    Dim a
    a = Array(1, 2, 3)
     = a
    MsgBox Application.CountIf(Range("A1:C1"), 1)
End Sub

VBA笔记:数组

声明1个1~50的数组,可以将区间值写出来
Dim SZ(1 To 50) As String
也可以用"个数"来标识,比如上述的 1 to 50 可以用 49 来替代(0~49的意思,总计50个数字)
Dim SZ(49) As String
我们还可以模块的开始,就设定好数组的索引值从1开始(1~50)

当数组声明好了之后,我们可以给数组赋值
比如,给数组的第15个元素赋值的方法如下:
SZ(14) = "100"
给一个数组集体赋值的方式:

VBA还支持 横向、纵向 同时存在的列表型数组,比如,我们声明一个3*20的数组
Dim SZ (1 to 3 , 1 to 20)
当然,也可以用个数来表示数组

假设,有4个高3层、宽5格的货架,用数组可以这样来表示

与单维数组的赋值方式一样

当无法确定数组的存储元素多少时,我们可以先声明一个空的数组:
Dim SZ ()
然后,再通过ReDim语句来重新声明数组的大小

数组内,参数间用英文逗号分隔,参数支持数字、文本
数组的索引号默认从0开始,除非在模块中的第1句已经写入了"Option Base 1"语句

数组内,参数间用英文逗号分隔,参数仅支持文本 (需要确认)

数组的索引号默认从0开始,无论是否已写入"Option Base 1"语句

可以把一个单元格区域的值存到数组里,也可以把数组里的值写到单元格里去 (单元格区域的大小必须一致)

通过UBound和LBound函数,可以计算数组的最大、最小索引号
UBound(arr) ‘返回数组的最大索引号
LBound(arr) ‘返回数组的最小索引号
UBound(arr) - LBound(arr) +1 ‘返回数组一共有多少个元素

如果是一个多位数组,还需要指定数组的维度,比如:

使用join函数,可以将数组里的所有元素,通过一个指定的拼接符号,拼成一个新的字串

使用range函数,可以将数组写入单元格、区域

无论1维数组还是2维数组,在写入单元格区域时,区域的大小,与数组的大小需要保持一致

vba中函数使用数组公式

Application.WorksheetFunction.Sum() 要这样写。range是直接引用单元格。共公式里的A1:A10是有区别的。
用符号括起来就支持数组用法了。比如下面这样
Application.WorksheetFunction.Sum()

VBA操作数组

Option Base 1
Sub 数组片段()
Dim i%, arr, arr1(2, 1)         ’先定义一个和绿色区域相同大小的数组arr1,2行1列
arr = Range("G2:K6").Value      ’把黄色区域的数据读入数组arr,5行5列
For i = 1 To 2                  ’用FOR循环为新数组arr1赋值
    arr1(i, 1) = arr(i + 2, 3)
Next i
Range("A1").Resize(2) = arr1    ’将单元格区域A1改变大小为2行1列后输入新数组arr1的值
End Sub

关于vba数组用法到此分享完毕,希望能帮助到您。

vba数组用法(vba中数组怎用)

本文编辑:admin

更多文章:


Windows批处理命令和使用教程(几个简单的Bat批处理)?怎么批处理文件名

Windows批处理命令和使用教程(几个简单的Bat批处理)?怎么批处理文件名

“批处理命令”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看Windows批处理命令和使用教程(几个简单的Bat批处理)?怎么批处理文件名!本文目录Windows批处理命令和使用教程(几个简单的Bat批处理)怎么批处理文件名

2025年9月16日 07:45

超级用户官网下载(OPPO手机开通超级用户权限怎么关掉)

超级用户官网下载(OPPO手机开通超级用户权限怎么关掉)

大家好,超级用户官网下载相信很多的网友都不是很明白,包括OPPO手机开通超级用户权限怎么关掉也是一样,不过没有关系,接下来就来为大家分享关于超级用户官网下载和OPPO手机开通超级用户权限怎么关掉的一些知识点,大家可以关注收藏,免得下次来找不

2026年5月18日 06:30

windowsinstaller下载(如何下载Windows Installer Clean Up)

windowsinstaller下载(如何下载Windows Installer Clean Up)

这篇文章给大家聊聊关于windowsinstaller下载,以及如何下载Windows Installer Clean Up对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录如何下载Windows Installer Clean

2025年6月24日 21:45

so random什么意思(random是什么意思)

so random什么意思(random是什么意思)

今天给各位分享random是什么意思的知识,其中也会对random是什么意思进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录random是什么意思random的翻译是:什么意思外国人说random是什么意思ra

2025年10月31日 23:30

spring festival简笔画(春节怎么画简单又漂亮 二年级)

spring festival简笔画(春节怎么画简单又漂亮 二年级)

“spring festival简笔画”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看spring festival简笔画(春节怎么画简单又漂亮 二年级)!本文目录春节怎么画简单又漂亮 二年级英文海报春节怎么画春节英语手抄报

2026年8月27日 12:00

filesystemobject同时读写(ASP 读取txt 然后累加在写入txt)

filesystemobject同时读写(ASP 读取txt 然后累加在写入txt)

大家好,如果您还对filesystemobject同时读写不太了解,没有关系,今天就由本站为大家分享filesystemobject同时读写的知识,包括ASP 读取txt 然后累加在写入txt的问题都会给大家分析到,还望可以解决大家的问题,

2025年11月11日 23:45

marble columns什么意思(matlab里面 column 1 through 3 什么意思)

marble columns什么意思(matlab里面 column 1 through 3 什么意思)

其实marble columns什么意思的问题并不复杂,但是又很多的朋友都不太了解matlab里面 column 1 through 3 什么意思,因此呢,今天小编就来为大家分享marble columns什么意思的一些知识,希望可以帮助到

2026年3月17日 04:30

fixed翻译中文(fixed什么意思)

fixed翻译中文(fixed什么意思)

各位老铁们好,相信很多人对fixed翻译中文都不是特别的了解,因此呢,今天就来为大家分享下关于fixed翻译中文以及fixed什么意思的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录fixed什么意思Fixed

2025年9月7日 16:45

r语言基础入门教程(R入门Day2:数据类型1---向量)

r语言基础入门教程(R入门Day2:数据类型1---向量)

大家好,r语言基础入门教程相信很多的网友都不是很明白,包括R入门Day2:数据类型1---向量也是一样,不过没有关系,接下来就来为大家分享关于r语言基础入门教程和R入门Day2:数据类型1---向量的一些知识点,大家可以关注收藏,免得下次来

2026年3月19日 12:00

select按钮什么意思(2ds按键start和select是干什么的)

select按钮什么意思(2ds按键start和select是干什么的)

大家好,关于select按钮什么意思很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于2ds按键start和select是干什么的的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望

2025年7月22日 07:45

默克尔: 那时的乌克兰可不是今天(默克尔这番话,武契奇:“颠覆认知”)

默克尔: 那时的乌克兰可不是今天(默克尔这番话,武契奇:“颠覆认知”)

其实默克尔: 那时的乌克兰可不是今天的问题并不复杂,但是又很多的朋友都不太了解默克尔这番话,武契奇:“颠覆认知”,因此呢,今天小编就来为大家分享默克尔: 那时的乌克兰可不是今天的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析

2026年7月16日 15:00

datetime数据类型使用几个字符来表示日期和时间(日期的表示方法有几种)

datetime数据类型使用几个字符来表示日期和时间(日期的表示方法有几种)

今天给各位分享日期的表示方法有几种的知识,其中也会对日期的表示方法有几种进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录日期的表示方法有几种datetime时间格式日期的表示方法有几种  1、经常用来存储日期的

2026年8月24日 22:45

img格式照片画质(img大小怎么设置可以适应不同分辨率的excell)

img格式照片画质(img大小怎么设置可以适应不同分辨率的excell)

这篇文章给大家聊聊关于img格式照片画质,以及img大小怎么设置可以适应不同分辨率的excell对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录img大小怎么设置可以适应不同分辨率的excell佳能60D拍的照片在电脑上显示的

2025年11月19日 19:00

java源码(java新手,求完整的源代码)

java源码(java新手,求完整的源代码)

今天给各位分享java新手,求完整的源代码的知识,其中也会对java新手,求完整的源代码进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录java新手,求完整的源代码有谁知道将这段php代码翻译成JAVA代码怎么

2025年10月25日 13:45

performclick翻译(帮我把下列英语翻译成中文,急用!)

performclick翻译(帮我把下列英语翻译成中文,急用!)

大家好,关于performclick翻译很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于帮我把下列英语翻译成中文,急用!的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有

2026年7月26日 15:00

substring只有一个参数(jquery的substring 怎么使用)

substring只有一个参数(jquery的substring 怎么使用)

今天给各位分享jquery的substring 怎么使用的知识,其中也会对jquery的substring 怎么使用进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录jquery的substring 怎么使用参数

2025年5月26日 11:00

jqc遇到u头上两点要去掉(为什么j q x后加:ü时要去掉两点)

jqc遇到u头上两点要去掉(为什么j q x后加:ü时要去掉两点)

本篇文章给大家谈谈jqc遇到u头上两点要去掉,以及为什么j q x后加:ü时要去掉两点对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录为什么

2025年11月16日 12:45

绿叶html(口袋妖怪绿叶版在哪里捉超梦和其它的神兽)

绿叶html(口袋妖怪绿叶版在哪里捉超梦和其它的神兽)

大家好,如果您还对绿叶html不太了解,没有关系,今天就由本站为大家分享绿叶html的知识,包括口袋妖怪绿叶版在哪里捉超梦和其它的神兽的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录口袋妖怪绿叶版在哪里捉超梦和其它

2025年12月6日 07:30

pipeline platform(JDK 7确定B计划 部分特性延迟到JDK 8)

pipeline platform(JDK 7确定B计划 部分特性延迟到JDK 8)

各位老铁们,大家好,今天由我来为大家分享pipeline platform,以及JDK 7确定B计划 部分特性延迟到JDK 8的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈

2025年6月13日 18:15

javabean的属性有几种(编写一个javaBean类(类名为userInfo),该JavaBean类具备以下属性 1)int id 2)String name 3)boolean)

javabean的属性有几种(编写一个javaBean类(类名为userInfo),该JavaBean类具备以下属性 1)int id 2)String name 3)boolean)

大家好,如果您还对javabean的属性有几种不太了解,没有关系,今天就由本站为大家分享javabean的属性有几种的知识,包括编写一个javaBean类(类名为userInfo),该JavaBean类具备以下属性 1)int id 2)S

2025年6月17日 14:45

近期文章

char ch用法(c语言char ch)
2026-09-24 18:45:02
本站热文

electronics软件(labcenter electronics是什么软件)
2025-05-22 23:45:02 浏览:134
博客是微博吗(博客是微博吗)
2025-05-22 22:45:01 浏览:111
diversity and distribution(悬赏英语短文)
2025-05-23 16:15:02 浏览:107
ios软件开发前景(iOS就业前景怎么样)
2025-05-22 23:00:01 浏览:102
next month(有The next month这个单词吗,和 next month有什么区别)
2025-05-23 02:30:01 浏览:102
patron(patron是什么意思)
2025-05-23 10:30:02 浏览:95
标签列表

热门搜索