提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
Excel 工具在数据处理方面的功能十分强大,得益于微软逻辑系统功能的一体化和其本身全面的函数,除此之外还附加VBA的功能,服务于各行各业的自动化能力。
- 工作中偶尔会使用到VBA的某些功能,本着学习中分享,分享中总结。以便技术点滴积累,也许某刻在某个小点上也能辅助到他人解决一点问题。
一、Excel VBA的优势
Excel 身为微软的核心软件之一,经过多年打磨,和微软的操作系统绑定之深,功能之全面,使用案例之多,灵活度之高是无与伦比的。
VBA 寄宿于Excel 本身作为微软之利剑,也能很好全面集成Excel 中已有的各种功能函数 ,各种调用界面,以及其自身面向对象的灵活功能,是其他语言无法比拟的。常常可以这么认为,Excel VBA 已经可以处理业务中遇到的各种问题。小到细枝末节,大到模块化界面都有其存在的无可比拟意义,及时强大如 Python 也在很多方面不如本地化的 VBA 灵活方便。
二、总结VBA 使用中的一些知识小点
1. 跳出 本次循环,继续下一次循环 类似其他语言中的 continue 语句
代码如下: GoTo 语句可以实现相同功能
Sub data_tools()
Dim sht As Worksheet
Set sht = Sheets("Sheet3")
Rem 举例 九九乘法表
For i = 1 To 9
For j = 1 To 9
If j <= i Then
If j = 5 Then
Rem 测试下,GoTo 跳出本次循环
GoTo line:
Else
sht.Cells(i, j) = i & " * " & j & "= " & i * j
End If
End If
Rem 跳到此处,进行下一次循环
line:
Next j
Next i
End Sub
以上代码执行结果如下:
2. 跳出整个循环 类似其他语言中的 break 语句
代码如下: Exit For 语句可以实现相同功能 (如果是 Do 语句,可使用 Exit Do 语句退出循环)
Sub data_tools()
Dim sht As Worksheet
Set sht = Sheets("Sheet3")
Rem 举例 九九乘法表
For i = 1 To 9
For j = 1 To 9
If j <= i Then
If j = 5 Then
Rem 测试下,Exit For 跳出内层整个For 循环,第五列后的不再打印
Exit For:
Else
sht.Cells(i, j) = i & " * " & j & "= " & i * j
End If
End If
Next j
Next i
End Sub
以上代码执行结果如下:
总结
两种在循环中退出的模式,VBA 都有自己的实现,合理问题的类型和合理使用可以达到其他高级语言相同的能力。