excel - Excel - VBA 宏和 if
问题描述
我是 VBA 的新手,我正在尝试做简单的宏。我需要我的宏像这样工作:
如果 E5 单元格中有一个大于 1 的值,则显示一个消息框,其中包含“您的值是”/从 E5 获取值/
我想对 E 列中的所有单元格重复此条件。
首先,我从可行的方法开始:
Sub test()
If Range("E5").Value > "1" Then
MsgBox "Your value is" (here I don't know how to import real value from E5)
End If
End Sub
然后我可以点击“运行”,宏运行正常(这意味着“正式正常”,因为这还不是目标效果)。但是这个宏只有在我单击“运行”时才有效,而且我希望它一直工作,即使我关闭 Excel 并再次打开它也是如此。将宏分配给自动形状要容易得多,但在这里我摔倒了:(
解决方案
请注意,这"1"
是一个文本/字符串,而不是一个数字。所以如果你想比较一个数值>
或者<
你需要写
If Range("E5").Value > 1 Then
或者你没有得到你想要的结果。
要将值放入您的消息框中,您需要使用&
符号将其连接到您的文本。
MsgBox "Your value is " & Range("E5").Value
要对 E 列中的所有单元格执行此操作,您需要循环
Dim LastRow As Long 'find last used row in E
LastRow = Cells(Rows.Count, "E").End(xlUp).Row
Dim iRow As Long
For iRow = 1 To LastRow
If Cells(iRow, "E").Value > 1 Then
MsgBox "Your value in Cell E" & iRow & " is " & Cells(iRow, "E").Value
End If
Next iRow
但请注意,如果>1
E 中有许多值,那么您将获得许多消息框。如果您只想显示第一个消息框,请在下方>1
放置一个。这将在找到并报告第一个无效值后取消验证。Exit For
MsgBow
推荐阅读
- java - 如何使用 Camunda 的 fluent builder API 实现事务子流程?
- java - 在 android studio 中将字符串月份转换为整数,也就是可能为 5
- html - 我可以有两个垂直等于 100vh 的盒子并保持响应吗?
- python - x509 证书验证 Python
- c# - SQLite 与 WPF 应用程序部署
- reactjs - 在反应中验证蚂蚁设计 InputNumber 的最大长度
- spring-boot - 在控制器中处理可为空的 UUID - SpringBoot 和 Postgres
- dynamics-crm - 在 CRM 设计中,是否必须在请求更改地址时强制更新电话号码?
- r - 在一张图像中合并几个并排的图,直到某个给定的上限
- ansible - 如何阻止ansible跳到第二个任务,直到第一个任务成功执行?