1 VBA里可以使用的3类函数,都是独立的

  • VBA函数
  • application函数
  • application.worksheetfunction函数
  • VBA函数,appliacation函数,工作表函数,三种同名函数完全独立
  • EXCEL工作表函数(默认都是只能针对一个cell做作用的! 并且一般是cell.value)

1.1 比如 match函数

  • vba.match                                               ?好像是没有
  • application.match()                                  '运行时如果查不到,会返回错误值
  • application.worksheetfunction.match()    '运行时如果查不到会直接报错跳出
Sub test1()Dim dict1 As New DictionaryDim dict2 As Object
Set dict2 = CreateObject("scripting.dictionary")arr1 = Array(1, 2, 3, 4, 5)
arr2 = [{11,22,33,44,55}]    '下标默认从1开始,因为是EXCEL格式For i = LBound(arr1) To UBound(arr1)dict1(arr1(i)) = arr2(i + 1)
NextFor Each i In dict1.Keys()Debug.Print i & "," & dict1(i)
Nexttarget1 = 55
Debug.Print dict1.Keys(Application.Match(target1, dict1.Items, 0) - 1)
Debug.Print dict1.Keys(WorksheetFunction.Match(target1, dict1.Items, 0) - 1)
'Debug.Print dict1.Keys(Match(target1, dict1.Items, 0) - 1)  '没这个VBA函数End Sub

1.2 比如 trim函数

trim() 是不是可以不只针对一个cell? 多个?可以针对字符串中间的空格不处理

  • trim()                                                           ' 只处理首位的空格
  • application.trim()                                          '处理首位的空格,中间的空格也会被缩为1个
  • application.worksheetfunction.trim()           '处理首位的空格,中间的空格也会被缩为1个
Sub test1()str1 = "  a      b c d      e  "Debug.Print "str1="; str1
Debug.Print "Trim(str1)=" & Trim(str1)
Debug.Print "Application.Trim(str1)=" & Application.Trim(str1)
Debug.Print "Application.WorksheetFunction.Trim(str1)=" & Application.WorksheetFunction.Trim(str1)End Sub

1.3 比如replace函数(VBA函数和 worksheetfunction 的replace语法完全不同)

  • replace() / VBA.Replace(目标我在你这字符串, "替换后的新文本", "要被替换的文本")
  • worksheetfunction.replace() / Application.worksheetfunction.replace()
  • worksheetfunction.Replace(old_text,start_num,num_chars,new_text)
  • worksheetfunction.replace(目标完整字符串,开始位置,从开始位置开始的替换个数,新的文本)
Sub test1()str1 = "hello,xxx,xxx,xxx"Debug.Print str1
Debug.Print Replace(str1, "xxx", "yyy")
Debug.Print Application.Replace(str1, 7, 3, "y")
Debug.Print WorksheetFunction.Replace(str1, 11, 2, "yy")End Sub

1.4  VBA.iserror() 函数 和 application.iferror() 函数

Sub test100()Debug.Print Application.Match(3, Array(1, 3, 5), 0)
Debug.Print IsError(Application.Match(3, Array(1, 3, 5), 0))
Debug.Print Application.Match(2, Array(1, 3, 5), 0)
Debug.Print IsError(Application.Match(2, Array(1, 3, 5), 0))
Debug.PrintDebug.Print Application.IfError(Application.Match(3, Array(1, 3, 5), 0), "999")
Debug.Print Application.IfError(Application.Match(2, Array(1, 3, 5), 0), "888")
Debug.PrintEnd Sub

【原创】VBA学习笔记(21) VBA函数,appliacation函数,工作表函数,三种同名函数对比举例(3个例子)相关推荐

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

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

  2. 学习笔记=《你不知道的JavaScript(上卷)》第三章:函数作用域和块级作用域...

    3.1 函数中的作用域 (1)JavaScript具有基于函数的作用域,每声明一个函数的时候会为其自身创建一个'气泡',这个气泡内声明的变量或函数外界无法访问. 函数作用域的含义是指,属于这个函数的全 ...

  3. Excel vba引用工作表的三种写法

    文章介绍vba引用工作表名称的三种不同写法. vba引用工作表是我们在学习VBA过程中很常用. 本文提供三种vba引用工作表的代码,通过这三种方式都可以实现vba引用工作表名. 方法一:Sheets( ...

  4. 数字图像处理学习笔记(七)——用Pycharm及MATLAB实现三种图像内插法(最近邻内插法、双线性内插法、双三次内插法)

    数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声.增强.复原.分割.提取特征等处理的方法和技术.本专栏将以学习笔记形式对数字图像处理的重点基础知识进行总结 ...

  5. python 学习笔记(基础输入输出,字符串,循环,三种数组)

    学习python发现这门语言和其他语言有很多不同之处,比如python的变量不需要要声明类型,python是解释性语言所以要注意函数定义的位置,python注重代码格式而不注重符号.python方便得 ...

  6. HTML学习笔记16——尺寸的表示_px、%、em三种

    1.像素表示:  23px 2.子像素可以用百分比表示其大小,如50%,表示为父元素的一半 如果块状子元素的宽度不指定,默认是占满父元素的宽度: 3.用em表示字体大小时,表示相对大小,是与父元素的比 ...

  7. VBA学习笔记(9)--生成点拨(1)

    VBA学习笔记(9)--生成点拨(1) 说明(2017.3.26): 1. 还没写完,写到新建文件夹了,下一步新建word,重命名,查找点拨,把点拨复制进去,因为要给点拨编号,应该会很麻烦 1 Pub ...

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

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

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

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

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

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

最新文章

  1. 软考程序员Java答题速成_软考程序员考试试题解答方法与技巧
  2. 企业网络推广方法教你如何精准避免网站过度优化问题?
  3. HBASE完全分布式安装
  4. 联想rd650怎么装系统win7_Lenovo g50重装win7系统|U盘重装联想g50笔记本系统
  5. 内存缓存LruCache实现原理
  6. linux下dvwa安装教程,在Kali Linux上部署DVWA
  7. Ruby设计模式透析之 —— 适配器(Adapter)
  8. 深度学习实例——Keras实现手写数字识别
  9. i3能装Linux虚拟机,使用i3wm重新安装Ubuntu
  10. 摩尔定律和梅特卡夫定律_摩尔定律f
  11. win10专业版和企业版的区别_Win10专业版和家庭版有什么区别?
  12. APP Store下载一直等待中解决办法
  13. Android Qcom USB Driver学习(二)
  14. 软件测试---前言篇
  15. intra-mart产品开发相关介绍资料
  16. RocketMQ——Mac电脑OS系统docker安装Dashboard
  17. 一些经典但惊人的知识
  18. Objective-C 中的类和对象
  19. 手撸一个一起看电影应用-5-项目打包
  20. 李开复认为人类没有赢德扑人工智能的可能

热门文章

  1. [渝粤教育] 云南大学 大学生创新创业教育 参考 资料
  2. 网平差中的基线定权(松弛因子)
  3. 《一页纸项目管理》——读书笔记
  4. visio2016下载与安装
  5. maven安装配置换阿里源
  6. Linux x86-64 IOMMU详解(一)——IOMMU简介
  7. 关于身份证OCR识别,你知道多少?
  8. 安装linux镜像文件
  9. 谷歌和火狐FirePath下载
  10. visio图形包解压