我在Stack Overflow上找到了这个链接,它确实提供了很多帮助:Change Cell Values with Macro。我使用了@Jeeped提供的答案。
通过按下宏按钮,将单元格值从1更改为7。当它达到7时,它再次从1开始。
但是,我想使用两个按钮,一个倒计时,另一个按钮, 并且,当达到1时,按下计数按钮不应该影响 数字任何更多,要改变你将不得不按UP按钮来计数 数字1.
我该怎么做?
答案 0 :(得分:0)
我假设你想模仿另一个问题的行为,因为按钮通过一个范围内找到的值列表移动目标值。这与简单地递增或递减值明显不同。
警告:根据另一个问题,这要求列表中的值是唯一的。
以下内容与其他问题的代码类似。它向下移动。差异:它停在最后一个值(不会回到开始)。
Sub ButtonDown_Click()
Dim targetCell As Range
Set targetCell = Range("A1")
Dim tableRange As Range
Set tableRange = Range("B1:B10")
If IsError(Application.Match(targetCell.Value, tableRange, 0)) Then
'if value in the target cell is not in the table then reset to the first value in table
targetCell.Value = tableRange.Cells(1).Value
ElseIf Application.Match(targetCell.Value, tableRange, 0) < tableRange.Cells.Count Then
'if value in the target cell is NOT the last value in the table then move to the next value in the table
targetCell.Value = tableRange.Cells(1).Offset(Application.Match(targetCell.Value, tableRange, 0), 0).Value
End If
End Sub
以下是在表格中向上移动的另一个按钮的代码。它在达到第一个值时停止。
Sub ButtonUp_Click()
Dim targetCell As Range
Set targetCell = Range("A1")
Dim tableRange As Range
Set tableRange = Range("B1:B10")
If IsError(Application.Match(targetCell.Value, tableRange, 0)) Then
'if value in the target cell is not in the table then reset to the first value in table
targetCell.Value = tableRange.Cells(1).Value
ElseIf Application.Match(targetCell.Value, tableRange, 0) > 1 Then
'if value in the target cell is NOT the first value in the table then move to the previous value in the table
targetCell.Value = tableRange.Cells(1).Offset(Application.Match(targetCell.Value, tableRange, 0) - 2, 0).Value
End If
End Sub