【转载】EXCEL VBA UBound(arr,1),UBound(arr,2)解释
2024-10-21 05:50:28
Resize(UBound(arr, 1), UBound(arr, 2) 这句什么意思
resize()是一个扩展单元格地址区域的函数,有两个参数,第一个是行扩展数,第二个是列扩展数
UBound(arr, 1) :arr数组中最大行数;
UBound(arr, 2) :arr数组中最大列数。
这里是把数组的最大行数充当了 RESIZE的行扩展,最大列数 充当了resize的列扩展数。
arr = Range(("a2:b") & Range("a6555").End(xlUp).Row)
[a2].Resize(UBound(arr), 2) = arr '请详细解释一下这行什么意思?
把AB2列存入数组arr,再将arr重写入这个区域
效果就是如果原来有公式,这样就全没了,相当于粘贴数值。
例子1:
-------------------------------
Sub iSub()
Dim arr
arr = Range("a1:a7")
For i = 1 To UBound(arr, 1)
For j = 1 To UBound(arr, 2)
'处理的语句
Next
Next
End Sub
--------------------------------
解释:
将 arr 赋值为一个数组,即 Range("a1:a7")的单元格区域内容,即一个7行1列的区域
相当于:先定义数组 arr(1 to 7 ,1 to 1),再赋值内容
使用UBound(arrayname[, dimension])函数,获取指定维数的上限:
UBound(arr, 1) 取得arr第一维的上限: 7
UBound(arr, 2) 取得arr第二维的上限: 1
用两个 for ,循环数组中的每个元素。
例子2:
Sub 二列数据找相同项数组法()
Dim arr1, arr2, arr3()
arr1 = Range("A1:A13") '第一列数据范围
arr2 = Range("B1:B13") '第二列数据范围
For i = 1 To UBound(arr1)
For j = 1 To UBound(arr2)
If arr1(i, 1) = arr2(j, 1) Then
If InStr(Join(arr3, ","), arr1(i, 1)) = 0 Then
n = n + 1
ReDim Preserve arr3(1 To n)
arr3(n) = arr1(i, 1)
Exit For
End If
End If
Next
Next
Range("d1").Resize(UBound(arr3), 1) = WorksheetFunction.Transpose(arr3) '相同的项放在d1单元格中。
End Sub
Sub 二列数据找相同项字典法()
arr1 = Range("A1:A13") '第一列数据范围
arr2 = Range("B1:B13") '第二列数据范围
Set d = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(arr1)
d(arr1(i, 1)) = 0
Next
For j = 1 To UBound(arr2)
If d.exists(arr2(j, 1)) Then d(arr2(j, 1)) = 1
Next
For Each d1 In d.keys
If d(d1) = 0 Then d.Remove (d1)
Next
Range("f1").Resize(d.Count, 1) = WorksheetFunction.Transpose(d.keys) '相同的项放在f1单元格。
End Sub
最新文章
- IIS GZip
- js原型基础
- 如何搭建一个WAMP环境
- 说说设计模式~适配器模式(Adapter)
- WPF 异步加载高清大图
- java面试总结-(hibernate ibatis struts2 spring)
- wx.html2.WebView在 target=";_blank"; or rel=";external"; 没有反映的解决方法
- 修改stb_image.c以让Duilib直接支持Ico格式的图标显示
- Cocoapod安装 - 管理第三方库
- iOS_词典阵列 按key分组和排序
- 关于JavaScript语法的小笔记
- Windows Nodejs 安装教程
- Eclipse+maven+scala+spark环境搭建
- Asp.Net \uxxx Unicode编码解码
- Adobe PhotoshopCC2017 安装与破解(Mac)
- [lisp] scheme学习2
- google analysis教程
- Java使用BigDecimal解决精确计算的问题
- markdown中设置、调整图片尺寸
- Python:numpy中的tile函数
热门文章
- 微信小程序第三方授权登录
- 220726 T1 树染色问题 (树的直径)
- Java8新特性之Stream流(含具体案例)
- 第一个java程序进行总结
- 一天五道Java面试题----第十一天(分布式架构下,Session共享有什么方案--------->分布式事务解决方案)
- Codeforces 1682 D Circular Spanning Tree
- 深入理解独占锁ReentrantLock类锁
- 【vue2】Style和Class,条件,列表渲染,双向数据绑定,事件处理
- 纯css爱心代码-最近超级火的打火机与公主裙中的爱心代码(简易版)
- CF620E New Year Tree(树形+dfs序+线段树+状态压缩)