1 VBA 很多工作表函数,都只对一维数组有用,用2维数组上经常报错

  • 很多工作表函数都不能对二维数组生效
  • 有时候连错误值都不返回,直接代码中断)

2 举例1:join() 和 split() 函数 只对一维数组生效

2.1比如 join()  和 split() 函数,只适合一维数组

  • 值得注意的是:split和join只能对一维数组进行操作
Sub try001()
str1 = "1,2,3,4,5,6,7"
arr1 = Split(str1, ",")For Each I In arr1Debug.Print I;
Next
Debug.Printstr2 = Join(arr1, "-")
Debug.Print str2End Sub

2.2 join() 直接用于2维数组会报错,如果一定要使用,则需要先把二维数组转为一维数组

Sub try002()'二维数组,静态redim
Dim arr3()
ReDim arr3(1 To 3, 1 To 3)
For I = 1 To 3For J = 1 To 3arr3(I, J) = (I + J) * JNext
Next
Debug.PrintFor I = LBound(arr3) To UBound(arr3)For J = LBound(arr3, 2) To UBound(arr3, 2)Debug.Print arr3(I, J);NextDebug.Print
Next
Debug.Print'这样会报错
'Str3 = Join(arr3, "-")
'Debug.Print Str3
'Debug.Print'二维数组连接得用循环了
For I = LBound(arr3) To UBound(arr3)For J = LBound(arr3, 2) To UBound(arr3, 2)str4 = arr3(I, J) & "-"str5 = str5 + str4Next
Next
Debug.PrintDebug.Print str5
Debug.Print'整个维度用join 维度外循环? 按行做
For I = LBound(arr3) To UBound(arr3)
str6 = Join(Application.Index(arr3, I), "-")
str7 = str6 + "-" + ";"
Debug.Print str7
Next
Debug.Print'整个维度用join 维度外循环? 按列做
For J = LBound(arr3, 2) To UBound(arr3, 2)
str6 = Join(Application.Transpose(Application.Index(arr3, , J)), "-")
str7 = str6 + "-"
Debug.Print str7
Next
Debug.PrintEnd Sub

3 举例2:match 也只能对1维数组操作

3.1 match用于一维数组

Sub try003()
str1 = "11,22,33,44,55,66,77"
arr1 = Split(str1, ",")     '被split() 返回的数字也会是字符串For Each I In arr1Debug.Print I & ",";
Next
Debug.Printtarget1 = "55"
Debug.Print Application.Match(target1, arr1, 0)End Sub

3.2 match 用于二维数组

  • match 如果要正确查到内容,也需要先把二维数组拆解为一维数组才行
Sub try004()
'二维数组,静态redim
Dim arr3()
ReDim arr3(1 To 3, 1 To 3)
For I = 1 To 3For J = 1 To 3arr3(I, J) = (I + J) * JNext
Next
Debug.PrintFor I = LBound(arr3) To UBound(arr3)For J = LBound(arr3, 2) To UBound(arr3, 2)Debug.Print arr3(I, J);NextDebug.Print
Next
Debug.Printtarget1 = 10
Debug.Print Application.Match(target1, arr3, 0)
target2 = "10"
Debug.Print Application.Match(target2, arr3, 0)
Debug.PrintFor I = LBound(arr3) To UBound(arr3)Debug.Print Application.Match(target1, Application.Index(arr3, I, 0), 0)
Next
Debug.PrintEnd Sub

【原创】VBA学习笔记(300)VBA 很多工作表函数都只对1维数组有用,用2维数组上经常报错!相关推荐

  1. VBA学习笔记2:将工作簿的表格拆分为工作簿

    VBA学习笔记2:将工作簿的表格拆分为工作簿 1.判断原有工作簿的sheet是否需要拆分: 2.如需拆分则创建新表: 3.将原sheet复制到新建的工作簿中. 效果如下: 代码执行前,有1个工作簿,需 ...

  2. 【VBA(八):在VBA中使用公式】【工作表函数+VBA函数+小结】

    上一篇:[VBA(七):事件与典型应用案例][关于单元格格式设置中的WITH语句+事件与典型应用案例+小结与练习] 文章目录 工作表函数 VBA函数 InStr Split 小结 概念 常用VBA函数 ...

  3. VBA应用笔记 -- 批量导出excel工作表中的图片

    业务场景: 日常工作中,我们可能会遇到需要批量导出excel表中的图片的情况,按照网友的做法,批量导出excel中的图片主要有几种方法: 解压缩方法:可以通过将excel文件转成rar压缩文件,解压后 ...

  4. VBA学习笔记之VBA学习思路

    进阶的知识点 1. SQL查询语句和ADO 2. 正则表达式和网抓 3. 窗体与控件 4. API 类模块 等等 作者:SOROSay 链接:https://www.zhihu.com/questio ...

  5. VBA学习笔记5:将同一工作簿的数据按照类别拆分为多个工作簿

    VBA学习笔记5:将同一工作簿的数据按照类别拆分为多个工作簿 1.对每行数据按照类别所在列进行循环,判断某类别的工作簿是否存在: 2.如果不存在,则新建工作簿并将该行数据复制粘贴: 3.如果存在则打开 ...

  6. 陈表达VBA学习笔记-新建工作表鼠标右键菜单按钮

    陈表达VBA学习笔记-新建工作表鼠标右键菜单按钮:新建一个我的菜单按钮 设置对应的宏过程名称为 [我的菜单宏] 点击按钮弹窗信息,信息可自定义设置 详细代码如下: Sub 新建右键菜单()Dim 菜单 ...

  7. VBA学习笔记3:合并同一工作簿下的多个表格

    VBA学习笔记3:合并同一工作簿下的多个表格 1.建立一个新的汇总表: 2.将其他sheet数据复制到汇总表中. 效果如下: 需要将3个sheet的表的数据汇总起来 汇总后的数据: 代码如下: Sub ...

  8. VBA学习笔记1:将同个文件夹中的工作簿汇总为一个工作簿,并建立目录超链接

    VBA学习笔记1:将同个文件夹中的工作簿汇总为一个工作簿,并建立目录超链接 1.将文件夹中的xlsx文件名复制到新工作簿: 2.将文件夹中的xlsx数据簿中的sheet复制到新表并重命名: 3.插入超 ...

  9. 【原创】VBA学习笔记(7)VBA各种报错和原因备忘

    0 报错经验的查询 报错,发生在报错的那一行 报错,也经常发生在报错的前一行 所以debug 要重点看,报错行和报错行的下一行! 报错,也经常发生在报错的前一行的例子 下面这个报错,其实是fn2=di ...

最新文章

  1. express框架安装步骤
  2. VS2010配置opencv2.4.9
  3. 老板必读:如何找到靠谱活好的人才?
  4. 编程php分析器,如何编程访问分析器数据
  5. 类和类之间的关系解析-1
  6. D1net阅闻:Google Analytics增AI自动化分析功能
  7. OpenJudge NOI 1.16 08:石头剪刀布
  8. 20世纪50年代开始,数字技术出现,数字计算机开始代替模拟计算机,我们从电气时代逐渐走到了信息时代,电脑重塑了社会的架构与价值。...
  9. 影响局域网速度的因素
  10. android 打包成多个so,Android Studio打包.so库到apk中实例详解
  11. C#修改Windows系统时间
  12. Legion 一款网络渗透工具
  13. Pytorch中BatchNorm中running_mean和running_var的计算方法
  14. 计算机图片怎么截图快捷键,电脑截图快捷键四种截屏方式,笔记本电脑如何截屏截图?...
  15. 苹果电脑打印A4纸上纸盒的细线很浅
  16. c语言实现人民币转换成大写中文数字
  17. uni-app Simple
  18. Windows一些技巧
  19. 有交互项的多元线性回归
  20. 自从有了这套近4000页的开发文档后,Java面试路上就像开了挂一样

热门文章

  1. 纵横20年,我所经历的数据开放演化史 by 傅一平
  2. 技术博客1鸿蒙系统和安卓的区别有哪些
  3. 【Django】Django 的员工信息系统
  4. 表格布局管理器TableLayout
  5. Wiredtiger 存储引擎概述
  6. 第19章 Linux电源管理的系统架构和驱动之CPUFreq驱动
  7. python随机森林变量重要性_python机器学习之随机森林(七)
  8. 工作流Activiti初体验—流程撤回【二】
  9. 如何不改一行代码,让Hippy启动速度提升50%?
  10. C基础 | 【05】(内存结构以及复合类型)