VBA中用于研究的数据输入表单,

时间:2019-06-07 22:30:36

标签: excel vba

我正在进行一个研究项目,并试图简化我的数据输入过程。虽然从理论上讲我可以直接将数据输入到工作表中,但是恐怕我会进入错误的行并最终意外覆盖先前的条目,或者一旦我输了几百行就会完全丢失。理想情况下,我想制作一个将自动填充到Excel行的表单。我更愿意通过软件来执行此操作,但是我没有发现任何很棒的东西,并且得出的结论是我需要使用VBA。这是一个问题,因为我小的时候除了在计算机训练营里使用HTML的几周之外,我没有做任何其他代码。这是我第一次尝试摆脱Excel中面向用户的基本过程(为什么VBA看起来与Office 2003完全一样?)

我希望有多种数据输入方式(自由输入,下拉菜单,单选按钮,以及来自每个主题的信息进入其自己的行。理想情况下,我还希望将某些选择显示为灰色)如果它满足我的排除标准,则整行(并从我的数据中排除它)在某些选择中,我也希望能够输入一个值,并在下一行将其标记为“异常”它不在预设范围内,但是如果它变得太复杂,我可以手动执行这两项操作。

到目前为止,我研究的主要收获是VBA似乎是我应该使用的。我尝试观看了有关该主题的一些不同的视频,并且能够创建表格。我在这里面临的一个挑战是,我似乎无法弄清楚如何在下拉列表中添加选项。我正在尝试通过转到“查看”“代码”然后输入

Private Sub ComboBox1_Change()
ComboBox1.AddItem([apples],[bananas])
End Sub

但是我得到了“编译错误:期望=“,所以很明显我在某个地方出错了。

此外,我的表单空间不足,并且看不到如何在底部留出更多空间(带有滚动条)(我只能使它和屏幕一样高)。 / p>

也就是说,这里最大的问题显然是试图弄清楚我如何将我的数据发送到excel工作表本身,以便我可以对其进行分析。我什至不知道从哪里开始。我在网上看到的示例代码似乎与我正在尝试做的事情(对于我未经训练的眼睛)有很大不同-例如https://www.contextures.com/xlUserForm02.html

中的示例

有人有一些与我尝试的代码更接近的代码吗?我会竭尽所能。

编辑:我在网上发现了一些代码,这些代码似乎与我正在尝试的代码相匹配(我仍然必须弄清楚单选框,即使点击次数增加,我也可能会使用更多的下拉菜单),但我“收到“编译错误:该对象派生自该对象的对象模块中已经存在成员”,我按照指示从此处复制了它,然后对其进行了编辑以匹配我的字段,所以我不确定出了什么问题:

Private Sub problem()
    'Populate control.
    Me.cboClass.AddItem "Amphibian"
    Me.cboClass.AddItem "Bird"
    Me.cboClass.AddItem "Fish"
    Me.cboClass.AddItem "Mammal"
    Me.cboClass.AddItem "Reptile"

End Sub

Private Sub addcase()
    'Copy input values to sheet.
    Dim lRow As Long
    Dim ws As Worksheet
    Set ws = Worksheets("Sheet1")
    lRow = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
    With ws
        .Cells(lRow, 1).Value = nmbr
        .Cells(lRow, 2).Value = problem
        .Cells(lRow, 3).Value = age
    End With

    'Clear input controls.
    patientnmbr = ""
    Chiefcomplaint = ""
    agebox = ""


End Sub

Private Sub cmdClose_Click()
    'Close UserForm.
    Unload Me

End Sub

1 个答案:

答案 0 :(得分:0)

您不应在自身的更改事件期间填充组合框,否则可能会得到奇怪的结果...

尝试从其他地方填充(通常从一些基本内容的用户窗体初始化开始),可能的其他事件(按下按钮,更改文本框,更改其他组合框):

看看是否有帮助:

Private Sub UserForm_Initialize()
    With ComboBox1
        .AddItem "one item"
        .AddItem "two items"
        .AddItem "three items"
        .AddItem "more items"
        .AddItem "how many items?!"
    End With
End Sub

以上内容可帮助您解决代码所显示的特定问题。

关于从何处开始和更多详细信息,我将搜索(任何通用搜索引擎都应该搜索) VBA Userforms数据输入,那里有一些很棒且详细的教程可以从中创建基本到更复杂的形式。

相关问题