职场中使用Excel VBA编程处理表格数据时,我们肯定会遇到过错误,《神奇的VBA》学习插件中介绍过VBA错误有语法错误,有运行时错误等等。语法错误在编程阶段编辑器会告知我们,这很方便,但是运行时错误有时候就有点麻烦了。程序运行时错误是所有写程序人的天敌!一个小小的错误有时候能让人变得非常暴躁。尤其是学习Excel VBA的新人,程序的错误更会消耗一个人的耐心和兴趣。下面介绍3个常见的错误。这些错误不仅职场Excel编程的新人会碰到,而且经常使用Excel VBA编程的职场老腊肉们其实也经常会掉坑里。

1. 变量名错误

错误信息: 运行后没有返回正确的结果。为什么我的运行结果为空?

Sub 创建变量并赋值()
Dim str1 As String
shr1 = "I Love 神奇的VBA"
MsgBox str1
End Sub

错误原因: 这个错误,太多人会碰到了,这是个典型的超低级错误!上面代码示例中str1和sh1根本就不是同一个变量。虽然显式定义了一个字符串String类型的变量,但是赋值变量时,却写错了变量。由于编辑器默认不用强制编程声明,所有sh1在编程时并没有提示错误。运行时也不会产生错误,sh1相当于隐式地创建了一个变量。


2. 数组定义理解不清

错误信息: 运行后,循环遍历数组时,为什么会多弹出一个0.

Sub 数组赋值并遍历()
'创建一维数组
Dim num(3) As Integer
'对元素数组进行赋值
Dim x As Long
For x = 0 To 2num(x) = Cells(x + 1, "A") '假设A1~A12单元格都有数据
Next
'通过循环遍历逐一弹窗显示数组的元素值
Dim ele As Variant
For Each ele In numMsgBox ele
Next
End Sub

错误原因:在没有Option Base 1语句的前提下, num(12)等同于num(0 To 12) 总共有13个元素,而不是12个元素。


3. For Each遍历数组元素产生错误!

错误信息: 循环遍历数组获取数组元素值时,运行中产生错误提示“下标越界”。

Sub 数组赋值并遍历()
'创建一维数组
Dim num(0 To 2) As Integer
'对元素数组进行赋值
Dim x As Long
For x = 0 To 2num(x) = Cells(x + 1, "A") '假设A1~A12单元格都有数据,分别为1~12
Next
'通过循环遍历逐一弹窗显示数组的元素值
Dim ele As Variant
For Each ele In numMsgBox num(ele) '产生“下标越界”的运行时错误!
Next
End Sub

错误原因: 应该将num(ele) 改成 ele。For..Each遍历直接遍历元素。而num(ele)这样写会重新以ele值作为索引获取数组值!如果ele不是数值的如字符串的话会立即产生错误!

暂时就介绍这么多,更多知识下次再分享。

关注我,学习职场中的干货技能!

vba遍历字符串_操蛋的VBA程序错误!相关推荐

  1. vba mysql连接字符串_分享一个VBA连接mysql数据库的方法

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Dim strcn As String Dim cn As New ADODB.Connection '构造函数 Private Sub Class_In ...

  2. vba遍历字符串_Notes-VBA-遍历

    Sub遍历()For Each F In Dir遍历 'Office2003遍历,FSO遍历,双字典遍历,CMD遍历,栈遍历,管道遍历,Dir遍历 '此处加入文件处理代码即可. Selection.I ...

  3. vba遍历字符串_VBA7种文档遍历法

    Sub简单遍历测试()For Each F In Dir遍历 'Office2003遍历,FSO遍历,双字典遍历,CMD遍历,栈遍历,管道遍历,Dir遍历 '此处加入文件处理代码即可. Selecti ...

  4. vba遍历字符串_EXCEL 公式 遍历查找 查找字符串

    公式中,如果有数组,一定按按ctrl+alt+enter 如图,A列有"新华路永辉店","五一永辉店",我如果想统计永辉各个店的零售额,显然不可能,要把这些店统 ...

  5. access vba代码大全_这本VBA经典图书终于做活动了,还是5折!

    HI~大家好.记得之前一直给大家推荐咱们EH论坛编著的VBA图书<Excel VBA经典代码应用大全>,这书出来有段时间了,但一直未见出有力的优惠活动.这次京东破天荒出了个5折,而且是没有 ...

  6. python while遍历字符串_零基础学Python:while循环和for遍历

    1.while 循环 while是计算机的一种基本循环模式.当满足条件时进入循环,进入循环后,当条件不满足时,跳出循环.while语句的一般表达式为:while(表达式){循环体}. 循环的作用就是让 ...

  7. python vba excel课程_【Python3+VBA】在Excel中生成小姐姐|python3教程|python入门|python教程...

    https://www.xin3721.com/eschool/pythonxin3721/ 本文转载至知乎ID:Charles(白露未晞)知乎个人专栏 下载W3Cschool手机App,0基础随时随 ...

  8. vba传值调用_小白关于VBA调用Sub传递参数之传值与传址的思考

    故事一: 从前,森林里有三个小房子,一个红房子,一个黄房子,一个蓝房子. 红房子里面放了一个苹果,黄房子里面放了两个苹果,蓝房子里面放了三个苹果. 有一天,外面来了三个小精灵,一个叫红精灵,一个叫黄精 ...

  9. sprintf函数的格式化字符串_尚学堂百战程序员:Python 字符串处理

    一个字符不等价于一个字节,字符是人类能够识别的符号,而这些符号要保存到计算的存储中就需要用计算机能够识别的字节来表示.一个字符往往有多种表示方法,不同的表示方法会使用不同的字节数.这里所说的不同的表示 ...

最新文章

  1. Linux服务之Samba服务篇
  2. iOS从零开始学习直播之音频2.后台播放和在线播放
  3. ArrayList的泛型可以不写吗
  4. Bootstrap响应式布局以及栅格框架
  5. registerModulePath
  6. 怎么看vray渲染进度_3dmax如何渲染光子,为什么会卡光子呢?
  7. 关于C#中timer类
  8. c语言编写keil 设置memory model的编辑器,keil C51的Memory Model 说明[三种Model的选择对编译的影响]】...
  9. java爬取豆瓣电影TOP250排行
  10. linux删除文件历史如何查看,如何恢复误删除的Linux文件
  11. 《赖氏经典英语语法》第三集
  12. 全国哀悼日,网站黑白素配方法
  13. 神奇小子重启自动驾驶项目,推出开源软件Comma Neo
  14. “夜拍王”荣耀10GT上线,不用三脚架也能出夜景大片!
  15. switch日版有中文吗_Switch中文系统更新方法 NS怎么设置中文系统语言
  16. 微型计算机原理与接口技术考试附录
  17. Altium Designer 20 (5)——排针类元件创建
  18. 防范勒索蠕虫病毒入侵,3分钟教你快速关闭高危端口445!
  19. 简易的网页小游戏之接星星,HTML+JavaScript+css(一丢丢)
  20. 使用Qt框架创建一个基于Qt Quick的Python应用

热门文章

  1. 第三篇 层次类非线性表的编程实验 第9章 应用二叉树的基本概念编程
  2. 洛谷P1411 砝码称重
  3. poj3349找相同的雪花(哈希)
  4. Eclipse中Jar包的反编译(通过jar包查看源码)
  5. win—命令行窗口一层一层的打开文件
  6. 叠箱子问题 之 动态规划
  7. Linux Shell编程(3)——运行shell脚本
  8. 春节前后,太原将举办多种展览演出
  9. BZOJ-4008: [HNOI2015]亚瑟王 (概率期望DP)
  10. linux下写脚本时-gt是什么意思