用于更改单元格值的宏按钮

时间:2018-02-04 20:30:00

标签: excel vba excel-vba

我在Stack Overflow上找到了这个链接,它确实提供了很多帮助:Change Cell Values with Macro。我使用了@Jeeped提供的答案。

通过按下宏按钮,将单元格值从1更改为7。当它达到7时,它再次从1开始。

但是,我想使用两个按钮,一个倒计时,另一个按钮, 并且,当达到1时,按下计数按钮不应该影响 数字任何更多,要改变你将不得不按UP按钮来计数 数字1.

我该怎么做?

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