VBA 使用立即窗口 和 本地窗口 调试的一些基本方法

我是纯小白自学的,很多科班出身的同学可能不会遇到我这样的小白问题,但可能我的小白思路,对其他后来的一些小白有用,所以总结一下~

 

1 为什么要调试

  • 因为你的程序会出错啊
  • 有的出错会跳出报错
  • 有的出错不会跳出报错,但会返回错误值

 

2 怎么调试

  • 1 遇到报错了再调试,大家最普遍遇到的一种
  • 2 设置断点调试,这个可以逐步分割程序,查看每部分的问题
  • 3 用立即窗口+debug.print 这样的脚手架来看
  • 4 用本地窗口看变量的值---但如果想在报错前停下来,就需要用stop等语句进行配合。因为程序正确将瞬间执行完毕!本地窗口马上清空

 

 

3 几个调试的基本工具

  • 立即窗口,最大的作用就是所见即所得。局限性:显示的是执行结束后的全部结果,一般需要配合 debug.print等使用
  • 本地窗口:显示变量的值。但是一般需要配合 stop 语句断点前察看
  • 监视窗口:可以自定义想监视的变量,需要配合 能中断程序的方法一起用。

 

3.1 立即窗口

  • 立即窗口代码和 模块代码,变量,独立,没有任何关系
  • 可以当个临时小黑板 计算用
  • 顺便说一下立即窗口(按Ctrl+G或菜单选择),除了显示debug.print的执行结果外,在调试期间在立即窗口还可以直接输入语句,按回车后显示语句的执行结果,也可以用“?变量名”来显示变量的值(虽然鼠标移到变量上方时也会显示变量值,但如果值太长,是显示不全的)。例如,如果有个变量是mystr,可以在立即窗口输入下面例句:
  • ? mystr
  • ? left(mystr,5)

 

 

3.2 本地窗口

  • 平时运行时,会显示内容

  • 代码运行结束后 ,就会停止  

  • 那如果想运行时,也显示本地窗口呢,只需要在结束前,加入一句 stop即可

 

3.3 监视窗口

  • 对需要监视的变量,点右键  “ 添加监视 ”
  •  

 

 

 

4 如何调试VBA程序

  • 逐句执行,按f8 逐步执行,去调试   F5 立刻执行   F8 分步骤执行
  • 设置断点
  • 加stop语句+ 查看本地窗口,监视窗口等

 

4.1 stop语句

  • 语句里写stop 可以方便的查看,本地窗口里的 跟踪的变量的值
  • stop 停止,查看内存中的断点,否则看不到
  • 本地窗口,执行过程中才显示
  • 执行完成了就清除本地窗口---要加断点+监视窗口才行

 

4.2 断点

  • 断点,代码不继续往下执行的点
  • 断点,停在什么地方
  • 查看这个地方是否有错,一般是这,或者是这个的前一条语句或变量的问题
  • 断点和取消断点

 

 

4.3 错误捕捉

 

  • vba中提供了3个声明来设置错误陷阱.
  • On Error GoTo line '如果错误产生, 则跳转到某行,或者标号执行
  • On Error Resume Next '如果错误产生, 则继续下一条语句
  • On Error GoTo 0 '清除当前设置的错误陷阱
  • 一个声明来处理陷阱.
  •  

 

4.4 断言

 

  • 除了debug.print,还有一个debug.assert用于指定条件不成立时中断程序执行(和断点一样暂停)
  • 类似在监视窗口添加一个监视条件(监视条件成立时暂停),这在大的循环中找到指定的点很有用,例如:
  • debug.assert i<126    'i大于等于126时暂停(注意:条件不成立时暂停)

 

 

https://www.cnblogs.com/mq0036/p/4242132.html

https://docs.microsoft.com/zh-cn/office/vba/Language/How-to/set-and-clear-a-breakpoint

http://www.360doc.com/content/17/1003/18/30583536_692032205.shtml

 

 

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VBA(Visual Basic for Applications)可以使用SQL语句与数据库进行交互。下面是一个示例,展示如何在VBA使用SQL语句: ```vba Sub QueryData() Dim conn As Object Dim rs As Object Dim strSQL As String ' 创建连接对象 Set conn = CreateObject("ADODB.Connection") ' 设置连接字符串,这里假设使用的是Microsoft Access数据库 conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\path\to\your\database.accdb;" ' 打开数据库连接 conn.Open ' 创建记录集对象 Set rs = CreateObject("ADODB.Recordset") ' 构建SQL查询语句 strSQL = "SELECT * FROM TableName WHERE Condition;" ' 执行查询 rs.Open strSQL, conn ' 遍历结果集并处理数据 Do Until rs.EOF ' 处理每一行数据 ' 例如,输出第一个字段的值到调试窗口 Debug.Print rs.Fields(0).Value ' 移动到下一条记录 rs.MoveNext Loop ' 关闭记录集和连接对象 rs.Close conn.Close ' 释放对象 Set rs = Nothing Set conn = Nothing End Sub ``` 在上述示例中,首先创建了一个连接对象 `conn`,并设置了连接字符串来指定数据库的位置和其他相关信息。然后,使用 `conn.Open` 打开数据库连接。 接下来,创建记录集对象 `rs`,并构建SQL查询语句 `strSQL`。在示例中,使用了 `SELECT` 语句来查询表 `TableName` 中符合条件的记录。你需要根据自己的数据库结构和查询需求来编写SQL语句。 使用 `rs.Open` 执行查询,并使用 `Do Until rs.EOF` 循环遍历结果集中的每一行记录。在循环中可以对每一行数据进行处理,示例中使用 `Debug.Print` 输出第一个字段的值到调试窗口。 最后,记得关闭记录集和连接对象,并释放相应的资源。 需要注意的是,这里使用的示例是连接到Microsoft Access数据库的方式,你需要根据实际情况修改连接字符串,以适应不同类型的数据库。另外,还可以使用其他SQL语句,如插入、更新和删除等操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值