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
我刚刚开始学习 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