excel - 使用按钮从单元格值减去 1 时,VBA 最小值为 0 [零]
问题描述
我有一个非常基本的代码,它分配给从单元格 H6 中的值减去 1 的形状。我无法弄清楚的是如何阻止单元格值低于 0。
我已经尝试了以下 -1 工作的地方,但由于最小值部分,代码一直出错
Sub RoundedRectangle27_Click()
Cells(6, 8).Value = Cells(6, 8).Value - 1
IF cell(H6, <=0 Then = 0)
End Sub
Sub RoundedRectangle27_Click()
Cells(6, 8).Value = Cells(6, 8).Value - 1
IF cell(H6, <=0 Then = 0)
End Sub
我不希望单元格值低于 0,因为我有一个 VLOOKUP 链接到它。随后我还需要该值不大于 8
解决方案
if
应该先出现:
sub RoundedRectangle27_Click()
if Cells(6, 8).Value > 0 then
Cells(6, 8).Value = Cells(6, 8).Value - 1
end if
end sub
这样一来,无论你如何用力或快速地敲击RoundedRectangle27
,它都不会变成负数。
您可以使用类似的方法来防止增加到 8 以上,但您可能需要考虑重构以供重用:
function AdjustBy(value, delta, clampMin, clampMax)
if value + delta > clampMax then
AdjustBy = clampMax
else
if value + delta < clampMin then
AdjustBy = clampMin
else
AdjustBy = value + delta
end if
end if
end function
sub DecreaseButton_Click()
Cells(6, 8).Value = AdjustBy(Cells(6, 8).Value, -1, 0, 8)
end sub
sub IncreaseButton_Click()
Cells(6, 8).Value = AdjustBy(Cells(6, 8).Value, 1, 0, 8)
end sub
sub DoubleButton_Click()
Cells(6, 8).Value = AdjustBy(Cells(6, 8).Value, Cells(6, 8).Value, 0, 8)
end sub
推荐阅读
- blockchain - 我们可以在多链中编写查询,例如 select * from Stream1.key1 where key1.value = “xyz”
- adobe - Adobe Acrobat Reader - 光标不会消失
- javascript - 用 express 更新了一个文档
- ios - 使用共享扩展将图像保存到文档文件夹
- javascript - 在脚本中添加图像路径以从 json 文件中获取图像
- android - 如何在 Android 中使用 SQLite 将 TABLE ID AUTO_INCREMENT 传递给另一个多表
- c# - C# WPF WndProc 消息捕获不起作用
- android - 在嵌套场景中传递道具反应原生路由器通量
- android - 如何修复 BluetoothGATT 中的 onClientConnectionState() - status=22 clientIf=8 错误?
- java - 带有 ActionListener 的多个 JComboBox