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

【转载】EXCEL VBA UBound(arr,1),UBound(arr,2)解释的更多相关文章

  1. 【转载】EXCEL VBA Workbook、Worksheet、Range的选择和操作

    Workbooks对象是Microsoft Excel 应用程序中当前打开的所有 Workbook 对象的集合.有close.add.open等方法.   Workbooks.close        ...

  2. 【转载】EXCEL VBA 工作表拆分

    用VBA拆分工作表是一个不错的方法,特别是在处理大量数据的时候,能节省不少时间.   1.高级筛选: 筛选并复制到新工作表的关键代码如下: Range("Database").Ad ...

  3. C#调用Excel VBA宏[转载]

    原文地址:https://www.cnblogs.com/heekui/archive/2008/03/30/1129355.html 近日的一系列工作是做网站的营运维护,因此做了大量的支持工具.有E ...

  4. 【转载】EXCEL VBA 选取非连续的单元格区域——Areas集合

    出处:http://www.360doc.com/content/21/1113/17/77710807_1004011085.shtml 前面我们讲的大多是**并操作单个的单元格,或者是连续的单元格 ...

  5. 【转载】EXCEL VBA 中的Range.offset和Range.resize

    在Excel VBA中range.offset和range.resize均可以重新选择区域,但range.offset表示偏移且偏移后尺寸不改变,range.resize则会根据输入的行数和列数重新定 ...

  6. excel vba 实现跨表单(sheet) 搜索 - 显示搜索行记录搜索历史

    前两天,一个朋友问我,有没有办法在excel里实现一个表单里是原始数据,在另一个表单里显示搜索到的行,搜索关键词可用~分隔开,并把搜索历史记录下来? 我想了想,用vba实现肯定可以啊,但是我又在想,有 ...

  7. Office EXCEL VBA数组如何使用

    Excel VBA数组入门教程 1. 前言:不要把VBA数组想的太神秘,它其实就是一组数字而已. 2. 数组的维数: Sub 数组示例()  Dim x As Long, y As Long  Dim ...

  8. EXCEL VBA 选择文件对话框

    Sub XXX() Dim arr() arr = Application.GetOpenFilename("所有支付文件 (*.xls;*.xlsx;*.csv),*.xls;*.xlsx ...

  9. Excel VBA入门(8): 代码调试/错误处理/代码优化

    VBE有丰富的调试工具, 比如立即窗口, 本地窗口, 监视窗口, 断点调试... 第一个博文中已经讲过调试的基本操作: 设置断点, F5运行, F8逐条运行 断点就是程序中暂停停止运行的位置, 设置断 ...

随机推荐

  1. Pytorch及Yolov5环境配置及踩坑

    Pytorch及Yolov5环境配置及踩坑 1.何为Yolov5 yolo是计算机视觉方面用来进行目标检测的一个十分出名的开源框架,我搜不到官方的对此概括性的定义,但实际上也没什么必要,更重要的是会使 ...

  2. 洛谷P4638 SHOI2011 银行 ( 最大流)

    类似题目(一模一样):http://poj.org/problem?id=1149 我这里以poj1149的PIGS为例, 新建源点s和汇点t,n个顾客作为中间的点,,对于每个顾客,他可以解锁一定的猪 ...

  3. Java8新特性之Stream流(含具体案例)

    一.概述   Stream 流是 Java 8 新提供给开发者的一组操作集合的 API,将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选.排序.聚合等.元素 ...

  4. SQL优化步骤

    当生产数据量急剧增长后,很多SQL语句可能会开始暴露出性能问题.当面对一个有SQL性能问题的数据库时,应该从何处入手进行系统的分析,使得能够尽快定位到问题SQL处并尽快解决问题? 第一步:查看SQL执 ...

  5. ubuntu20.04 利用xrandr命令修改多显示器分辨率

    问题描述 笔记本是ThinkPad X1 Extreme Gen3 4K屏,外接了一个27寸的1080P显示器.目标是让两个显示器的"显示效果"分辨率能一致,就如winwods和m ...

  6. 通过netty把百度地图API获取的地理位置从Android端发送到Java服务器端

    本篇记录我在实现时的思考过程,写给之后可能遇到困难的我自己也给到需要帮助的人. 写的比较浅显,见谅. 在写项目代码的时候,需要把Android端的位置信息传输到服务器端,通过Netty达到连续传输的效 ...

  7. 【k8s连载系列】k8s介绍

    k8s是Kubernetes的缩写,Google 于 2014 年开源了 Kubernetes 项目. 一.k8s的历史演变 k8s的演变过程:首先从传统的服务-->虚拟机部署-->容器部 ...

  8. mybatis的映射

    //一对一 <resultMap id="给resultMap取的id名" type="类名"> <result property=" ...

  9. java基础篇—基础语法

    一.关键字和保留字    1.什么是关键字? 通俗来说就是带有特殊含义的字符,有自己专门用途的单词 2.特点? 关键字全部由小写构成,以下是java官方列举出的关键字 注意: 保留关键字:指的是现有版 ...

  10. mindxdl--common--k8s_utils.go

    // Copyright (c) 2021. Huawei Technologies Co., Ltd. All rights reserved.// Package common define co ...