-
VB中动态数组的使用事项
2019-02-27 16:05:141.动态数组的使用时,先在窗体层、标准模块或过程中声明一个没有下标的数组(括号不能省略),不指定维数。 2.在过程中用ReDim语句定义带下标的数组,给出数组的维数。注意:用ReDim定义的数组,只能改变数组元素的...1.动态数组的使用时,先在窗体层、标准模块或过程中声明一个没有下标的数组(括号不能省略),不指定维数。
2.在过程中用ReDim语句定义带下标的数组,给出数组的维数。注意:用ReDim定义的数组,只能改变数组元素的个数,不能改变数组的维数和数据类型。以下举例几个错误类型:
-
关于VB中的数组教程,数组的概念,动态数组的建立与声明
2009-06-10 08:06:15关于VB中的数组教程,数组的概念,动态数组的建立与声明 -
vb定义动态数组_动态数组函数系列2| 随机数组函数RandArray,返回自定义行列数,数值大小范围以及整数还是...
2020-12-09 13:51:35在此之前,我们的随机...因为工作中遇到的都是真实的数据,需要构建虚拟数据的环境不多。但是有一个应用场景对于很多人来说是实用的—那就是“数据脱敏”。在工作中,可能你会遇到一些Excel问题需要求助他人。但是...在此之前,我们的随机函数有Rand和RandBetween函数。Rand函数没有参数,默认返回0-1之间的小数。而RandBetween函数则返回指定数据范围内的整数。
可能对于大多数人来说,随机函数比较少用到。因为工作中遇到的都是真实的数据,需要构建虚拟数据的环境不多。但是有一个应用场景对于很多人来说是实用的—那就是“数据脱敏”。
在工作中,可能你会遇到一些Excel问题需要求助他人。但是单纯用文字来描述往往效率很低,如果能发你的Excel文件一同发给对方,效率会高很多。如果你的工作文件涉及到一些敏感数据的话,那么就可以用随机函数来构建一些虚拟数据,实现“脱敏”。
RandArray语法
RandArray函数的参数看起来很多,但是用法并不复杂,所有参数均为可选参数。如果所有的参数都忽略—RandArray(),那么就只返回一个0-1之间的小数,跟Rand()是一样的效果。
[Rows],[Columns]参数表示要返回几行几列的数据
如上图,返回的就是3行4列的数据,因为后面的参数没写,所以数据是0-1之间的小数。
[Min],[Max] 显然表示的就是返回随机数的最小值和最大值
上图,返回的就是3行4列,1-20之间的数据。因为最后一个参数忽略,返回的默认是小数。
[whole_number] 参数是逻辑值,True表示证书,False或者忽略表示小数
RandArray和Rand(RandBetween)函数有一个最明显的区别就是,RandArray返回指定大小的数组,而Rand(RandBetween)函数返回的仅仅是一个随机数。
总的来说,这个新增的随机函数用法比较简单。如果在需要构建虚拟数据的场景下,可以试试哦。
-
vb中mschart利用数组作图_在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法二...
2020-12-11 14:45:45大家好,我们今日继续讲解VBA代码解决方案的第62讲内容:在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法第二部分。在上一讲中,我们讲了知识点的利用,其一是Filter函数,其二是ReDim语句的利用价值。...大家好,我们今日继续讲解VBA代码解决方案的第62讲内容:在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法第二部分。在上一讲中,我们讲了知识点的利用,其一是Filter函数,其二是ReDim语句的利用价值。同时我们又讲了过程的定义。今日我们利用这些知识点,来完成我们的目的:使用动态数组去除文本中的重复值,
如下面的代码所示。
Sub MySplitarrtwo()
Dim Splarr() As String
Dim Arr() As String
Dim Temp() As String
Dim r As Integer
Dim i As Integer
On Error Resume Next
Splarr = Split(Sheets("kk").Cells(1, 1).Range("a1"), " ")
For i = 0 To UBound(Splarr)
Temp = Filter(Arr, Splarr(i))
If UBound(Temp) < 0 Then
r = r + 1
ReDim Preserve Arr(1 To r)
Arr(r) = Splarr(i)
End If
Next
Sheets("kk").Range("a5").Resize(r, 1) = Application.Transpose(Arr)
End Sub
代码解析:
MySplitarr过程将工作表Sheets("kk")中A1单元格的文本去除重复值后写入到工作表Sheets("kk")中的A列单元格。
第2行代码声明数组Splarr用来保存Sheets("kk")中A1单元格的文本。
第3行代码声明数组Arr用来保存去除重复值后的文本。
第4行代码声明数组Temp用来判断文本是否重复。
第5行代码声明变量r用来保存去除重复值后的文本数量。
第7行代码启动错误处理程序来忽略错误,因为在程序运行到第11行代码会发生下标越界错误。
第8行代码使用Split 函数以Sheets("kk")中A1单元格的文本创建一个下标从零开始的一维数组。
第9行代码使用For...Next语句遍历数组Splarr的所有元素。
第10行代码使用Filter函数创建一个数组Temp用来保存以当前Splarr数组的值在Arr数组中的搜索结果。
第11行代码根据返回的数组Temp的最大下标来判断当前Splarr数组的值是否重复。在使用使用Filter函数时如果没有相匹配的值,将返回一个空数组,最大下标小于0。
第12行代码如果当前Splarr数组的值不重复则将变量r的值加1。
第13行代码重新定义动态数组大小。
第14行代码将不重复值添加到数组Arr中。
第15行代码使用工作表Transpose函数将去除重复值的的文本转置后写入到工作表单元格中。
代码的截图:
运行前的截图:很显然有很多的重复数值:
运行后的截图:
今日内容回向:
1 上述代码是否清楚了它的运行过程呢?
2 第7行代码启动错误处理程序来忽略错误,这时为什么呢?
欢迎大家到我的自媒体平台沟通交流:个人微信号“NZ9668”、头条号“VBA专家”、百家号“VBA与GO语言”、微信公众号“NZ_9668”、社群“VBA学习交流群”。
这一系列文章是根据我多年的工作经验编写的,也是一直在利用的工具,非常方便好用。现在分享出来,希望能对同样在职场打拼的朋友有些许的帮助,使你的工作更加高效、流畅。朋友们有问题请随时提出来,我们一起探讨学习。对数据分析有需要的公司、组织或个人可以直接联系我,及时为你提供专业的定制技术支持。
工作不是一切。工作是每个人安身立命、成长发展的基础。但你要知道工作是永远也做不完的,时间会抹去很多问题。多关注自己、家人和朋友,这些才是我们生活中更为重要的东西。
-
vb中mschart利用数组作图_动态数组的应用,VBA中如何利用动态数组去除重复值的第二讲...
2020-12-11 14:45:44大家好,我们今日继续讲解VBA代码解决方案的第62讲内容:在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法第二部分。在上一讲中,我们讲了知识点的利用,其一是Filter函数,其二是ReDim语句的利用价值。...大家好,我们今日继续讲解VBA代码解决方案的第62讲内容:在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法第二部分。在上一讲中,我们讲了知识点的利用,其一是Filter函数,其二是ReDim语句的利用价值。同时我们又讲了过程的定义。今日我们利用这些知识点,来完成我们的目的:使用动态数组去除文本中的重复值。
如下面的代码所示。
Sub MySplitarrtwo()
Dim Splarr() As String
Dim Arr() As String
Dim Temp() As String
Dim r As Integer
Dim i As Integer
On Error Resume Next
Splarr = Split(Sheets("kk").Cells(1, 1).Range("a1"), " ")
For i = 0 To UBound(Splarr)
Temp = Filter(Arr, Splarr(i))
If UBound(Temp) < 0 Then
r = r + 1
ReDim Preserve Arr(1 To r)
Arr(r) = Splarr(i)
End If
Next
Sheets("kk").Range("a5").Resize(r, 1) = Application.Transpose(Arr)
End Sub
代码解析:
MySplitarr过程将工作表Sheets("kk")中A1单元格的文本去除重复值后写入到工作表Sheets("kk")中的A列单元格。
第2行代码声明数组Splarr用来保存Sheets("kk")中A1单元格的文本。
第3行代码声明数组Arr用来保存去除重复值后的文本。
第4行代码声明数组Temp用来判断文本是否重复。
第5行代码声明变量r用来保存去除重复值后的文本数量。
第7行代码启动错误处理程序来忽略错误,因为在程序运行到第11行代码会发生下标越界错误。
第8行代码使用Split 函数以Sheets("kk")中A1单元格的文本创建一个下标从零开始的一维数组。
第9行代码使用For...Next语句遍历数组Splarr的所有元素。
第10行代码使用Filter函数创建一个数组Temp用来保存以当前Splarr数组的值在Arr数组中的搜索结果。
第11行代码根据返回的数组Temp的最大下标来判断当前Splarr数组的值是否重复。在使用使用Filter函数时如果没有相匹配的值,将返回一个空数组,最大下标小于0。
第12行代码如果当前Splarr数组的值不重复则将变量r的值加1。
第13行代码重新定义动态数组大小。
第14行代码将不重复值添加到数组Arr中。
第15行代码使用工作表Transpose函数将去除重复值的的文本转置后写入到工作表单元格中。
代码的截图:
运行前的截图:很显然有很多的重复数值:
运行后的截图:
今日内容回向:
1 上述代码是否清楚了它的运行过程呢?
2 第7行代码启动错误处理程序来忽略错误,这时为什么呢?
-
VB中,动态数组中输入数据
2019-06-10 23:14:06Private Sub Command1_Click() Text1.Text = “” Dim s As Long, i As Long Dim a() Do ReDim Preserve a(s) a(s) = InputBox(“请输入字符串,输入空串时结束”, “输入”) s = s + 1 Loop Until a(s - 1) = “” ... -
vb动态数组
2012-07-19 21:28:07最近老板逼着弄GIS ,找到了mapobject是空间,使用过程中发现以前没解决的一个动态数组问题 闲话少说,进入正题 dim a() as string redim a(1) as string a(0)=0 a(1)=1 ReDim Preserve a(2) as string '这句... -
vb 二维数组_一起学VB——数组分类
2020-12-11 11:02:51其次根据是否可以被重新定义,数组可以分为静态数组和动态数组。一维数组与多维数组一维数组,即上节课程介绍的形式,也是默认情况下的数组形式,一维数组特点是只有一个下标。例如定义一个含有5个元素的一维数组,... -
mysql二维数组vb_VB中如何声明及使用多维数组,多层数组及动态数组
2021-02-02 04:33:46声明固定大小的数组有三种方法声明固定大小的数组,用哪一种方法取决于数组应有的有效范围:建立公用数组,在模块的声明段用 Public 语句声明数组。建立模块级数组,在模块的声明段用 Private 语句声明数组。建立... -
vb.net动态控件数组
2006-12-15 12:57:00vb.net里面的动态控件数组的问题,这个动态控件数组在vb里面easy到极致,可是在vb.net里面却有点让人... 1、在form的头部定义一个公共的ArrayList类型的变量 Dim m_items As New ArrayList2、在程序中动态生成控件 -
一个动态数组的例子,VB源代码.rar
2019-07-09 13:47:48一个VB动态数组例子,输入需要生成的数组大小,自动生成数组,挺简单,还不能应用于实践中,仅供参考。 -
VB中如何声明及使用多维数组,多层数组及动态数组
2009-09-23 23:41:00声明固定大小的数组 有三种方法声明固定大小的数组,用哪一种方法取决于数组应有的有效范围: 建立公用数组,在模块的声明段用 Public 语句声明数组。 建立模块级数组,在模块的声明段用 Private 语句声明... -
VB.NET 数组的定义 动态使用 多维数组
2015-03-20 12:47:00我们都知道在全部程序设计语言中数组都是一个非常重要的概念,数组的作用是同意程序猿用同...本文主要介绍VB.NET数组的使用,希望对大家的使用带来帮助。 数组中的第一个元素的下标称为下界,最后一个元素的下标称... -
VB中如何判断数组为空数组
2008-12-14 16:43:00是否有办法在使用一个动态数组之前,先看看它是否初始化了呢?试了isempty, isnull, is nothing都不管用。如果不想在使用之前ReDim arr(0),那就只能用错误处理,在出错误的时候做处理并resume next。暂时没有更好... -
在VB中创建和使用动态数组控件的方法总结
2009-10-13 19:26:00在VB中,MSHFEXGRID不支持文本框,为了解决这个问题,一般的方法就是通过一个文本框的显示和隐藏,并获得表格单元的坐标,来实现向MSHFLEXGRID中录入数据的,具体方法我记得在本博中有,就不说了,自己搜一下 今天要说的是... -
请教 在VB.net 中如何确定 动态数组 是否已经初始化?
2016-02-02 18:14:47在VB.net 中如何确定 动态数组 是否已经初始化。 -
VB.NET中动态添加控件数组
2006-10-25 16:18:00VB.NET中的控件数组? 项目的需求又变了,我必须要在我的窗口上根据读取的文件不同添加不同的checkbox,我本以为vb.net和vb一样一定会有控件数组呢,结果网上的高手们都说vb.net是没有控件数组这个概念的。不过可以... -
VB6中给数组赋值的限制
2012-08-20 08:53:39(由于用得不是很多,所以干脆记下来免得下次用到...被赋值数组需要是动态数组".对于类型,源数组与目标数组需要一致,即使是自定义类型也可以.以下说明一下可以赋值的情况:[codes=vb] Private Type MyType kk(10... -
VB 清除数组中全部元素的值
2019-06-12 11:41:58重新初始化大小固定的数组的元素,以及释放动态数组的存储空间。 语法 Erase arraylist 所需的 arraylist 参数是一个或多个用逗号隔开的需要清除的数组变量。 说明 Erase 根据是固定大小(常规的)数组还是动态数组...