vba中调试时不显示变量的值怎么办

vba中调试时不显示变量的值怎么办,第1张

1、检查代码中是否有定义另一个也叫“系统登录”的变量

2、调试,在上面语句系统登录Show处设置断点,程序中断后,在监视窗口中加入表达式“系统登录”,看对象内容是否正确。这边显示其内容应该是“对象变量或With块变量未设置”,即没有定义这个变量。

步骤1-VBA调试

1

先将数据区域的内容删除掉,并打开VBA编辑器,如图所示,在VBA编辑器中我们可以看到上节课录制的VBA代码

2

代码已经编写完成,我们需要调试一下查看代码是否正确,是否达到我们的要求。如图所示,其中“逐语句”和“切换断点”是比较常用到的调试方式

3

因为代码条数比较少,所以使用“逐语句”调试,在菜单栏中调用或按快捷键“F8”调用“逐语句”调试,如图所示

4

“逐语句”调试时,可以随时看到运行的过程并及时更改代码,如图:

5

调试完成,结果如图所示:

END

步骤2-VBA运行

1

VBA运行是指将设定的整个代码完全运行,并直接显示出结果。共有三种运行方法,方法1:如图

2

方法2:如图

方法3:直接快捷键“F5”

我怀疑这并不是那么复杂,但我没有多少运气为Google找到合适的术语...所以我来找专家!EXCEL VBA,更改单元格组和Worksheet_Change事件

所以我试图实现一个Worksheet_Change事件。这非常简单,我基本上只想做以下事情:

如果C列中的值发生变化,并且D中的值(在该行中)具有特定的格式(NumberFormat =“$ 0.00”),则E列(在该行)是这两个值的乘积。简单。实际上,我只想要在E列中使用公式的VBA等价物。这个代码我使用:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 3 And Target.Value <>"" Then

If Target.Offset(0, 1).NumberFormat = "$ 0.00" Then

Target.Offset(0, 2).Value = Target.Value * Target.Offset(0, 1).Value

End If

End If

end sub

我的问题是雨后春笋般冒出来,当我尝试在多个值粘贴到c柱的多行。即我将一列数据(>1行)复制到C中,并且出现类型不匹配错误。我会做出巨大的飞跃,它不能很好地处理这个问题,因为“目标”意图是一个单一的单元而不是一个组。我希望有一种简单的方法来处理这个问题,每次单元格上的单元格发生变化时都不会出现一些疯狂的循环。

在此先感谢!

来源


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11497643.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存