【问题标题】:VBA Inbut box with loop带循环的 VBA 输入框
【发布时间】:2016-07-20 10:11:14
【问题描述】:

我刚刚开始学习 VBA(以及一般的编码),我遇到了一个尚未找到解决方案的问题。我想创建一个带有循环的输入框,以便将输入框的输出打印到单独的单元格中。例如,我想在输入框中输入数字“5”,输出将打印到单元格“A1”,下一个输入,比如数字“9”,将打印到单元格“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

感谢所有帮助

【问题讨论】:

    标签: excel vba inputbox


    【解决方案1】:

    试试下面的代码

    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
    

    【讨论】:

    • 非常感谢!这正是我要找的那个。
    • @VilleT,那么您的问题具有误导性,因为您从单元格“A1”开始向下,而此解决方案跳过了单元格“A1”
    • @user3598756。故意那是标题。
    • @VilleT,永远欢迎。
    • @KarthickGunasekaran 在 OP 的问题中没有这种“目的”的迹象
    【解决方案2】:

    编辑

    • 缩短代码

    • 如果单元格“A1”已填满标题,请添加解决方案

    下面的代码就可以了:

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

    需要“条件”偏移来管理第 1 行(无偏移)或更低(1 行偏移)中的第一个空单元格

    如果单元格“A1”已经填充了标题,代码缩短为:

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

    【讨论】:

      【解决方案3】:

      如果你想做一个循环——例如 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
      

      【讨论】:

        猜你喜欢
        • 2018-07-16
        • 1970-01-01
        • 1970-01-01
        • 2018-03-23
        • 2014-06-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多