VBA 带循环的输入框

VBA Inbut box with loop

我刚刚开始学习 VBA(以及一般的编码),我遇到了一个问题,但我还没有找到解决方案。我想创建一个带有循环的输入框,以便将输入框的输出打印到单独的单元格中。例如,我想将数字“5”写入输入框,输出将打印到 Cell "A1",下一个输入,例如数字“9”,将打印到 Cell "A2" .

到目前为止,我已经做到了这一点,除了最后一行之外,一切正常,因为我不知道如何从这里继续。

Private Sub CommandButton1_Click()
Dim myValue As Variant

myValue = InputBox("Please insert number")

Range("A1").Select
ActiveCell.Value = myValue

Range(ActiveCell) = Range(ActiveCell) + 1

End Sub

感谢所有帮助

试试下面的代码

Private Sub CommandButton1_Click()
    Dim myValue As Variant
    myValue = InputBox("Please insert number")
    Range("A" & Range("A" & Rows.Count).End(xlUp).Row + 1) = myValue
End Sub

编辑#1: 根据 user3598756

的建议更新了代码
Private Sub CommandButton1_Click()
    Dim myValue As Variant
    myValue = InputBox("Please insert number")
    If Range("A" & Range("A" & Rows.Count).End(xlUp).Row).Value = "" Then
        Range("A" & Range("A" & Rows.Count).End(xlUp).Row) = myValue
    Else
        Range("A" & Range("A" & Rows.Count).End(xlUp).Row + 1) = myValue
    End If
End Sub

如果你想做一个循环 - 例如 10 次 - 那么你可以使用这个示例代码:

Sub CommandButton1_Click()

    Dim counter As Integer
    Dim myValue As Variant


    For counter = 1 To 10
        myValue = InputBox("Please insert number")
        Sheets("Sheet1").Cells(counter, 1).Value = myValue
    Next counter

End Sub

编辑

  • 缩短代码

  • 如果单元格 "A1" 已经被 header

  • 填充,请添加解决方案

下面的代码就可以了:

Sub CommandButton1_Click()
    With Cells(Rows.Count, 1).End(xlUp)
        .Offset(IIf(.Value <> "", 1, 0)) = InputBox("Please insert number")
    End With
End Sub

其中 "conditional" 偏移量是管理第 1 行(无偏移量)或更低(1 行偏移量)中的第一个空单元格所必需的

如果单元格 "A1" 已经被 header 填充,代码将缩短为:

Sub CommandButton1_Click()
    Cells(Rows.Count, 1).End(xlUp).Offset(1) = InputBox("Please insert number")
End Sub