Excel VBA提问线

时间:2013-06-28 14:28:29

标签: excel vba userform

我有一个excel文档,在1列上有5个连续的单元格,需要填入数据。我希望创建一个VBA用户窗体,它将通过一系列提问来帮助用户输入正确的数据。

让我们说5个细胞是A1到A5。一旦调用了用户窗体,它应该显示一个问题(标签可能是?),一个用于输入数据的文本框,以及一个用于移动下一个问题的命令按钮。一直从A1移动到A2,依此类推,直到提问线完成。

有人知道如何做到这一点吗?我的VB知识是基本的,但我试过并试图无济于事。

提前致谢!

1 个答案:

答案 0 :(得分:2)

给出这样的表格:

UserForm

您可以在数组中设置问题,并在设置答案时按下每个按钮进行迭代。

Dim i As Integer
Dim str(1 To 3) As String

Private Sub UserForm_Initialize()
    i = 1
    str(1) = "Question 1"
    str(2) = "Question 2"
    str(3) = "Question 3"

    btnNext.Default = True
    lblQuestion.Caption = str(i)
    txtAnswer.SetFocus
End Sub

Private Sub btnNext_Click()
    Sheets("Sheet1").Cells(i, 1).Value = txtAnswer.Text
    i = i + 1
    If i = UBound(str) + 1 Then
        UserForm1.Hide
        Exit Sub
    End If
    lblQuestion.Caption = str(i)
    txtAnswer.Text = ""
    txtAnswer.SetFocus
End Sub

结果示例: Result