【问题标题】:Store multiple user form submissions to an array and store the array in a table将多个用户表单提交存储到一个数组中,并将该数组存储在一个表中
【发布时间】:2020-06-27 01:10:04
【问题描述】:

我在这里看到了以下问题:How to add multiple data rows at once from UserForm to Excel DataBase 这似乎是我的问题的解决方案。

但是,我在尝试实施上述解决方案时遇到了一些困难。

背景: 我想创建一个用户表单,允许我添加股票信息,例如:股票的市场、代码、货币、价格和数量,并将这些信息添加到表格中。

尝试:

这是我设计的用户表单(目前很简单)

我想存储多个提交,然后将所有提交添加到表中。

代码

模块 1

Public ws As Worksheet
Public DataA()

用户表单代码

    '----Code to Set the dimension of the Data array
Private Sub UserForm1_Initialize()
    Dim DataA(5, 0)
    Set ws = ThisWorkbook.Sheets("Portfolio")
    '----Rest of your code
End Sub

'----Code to add a data set to the data array

'Button to add is called cmd_add
'Text Boxes are names: txt_SM, txt_Sy, txt_Cu, txt_Pr and txt_Qu
'These represent the desired headings: Stock Market, Symbol, Currency, Price and Quantity



Private Sub cmd_add_Click()

    DataA(1) = UserForm1.txt_SM
    DataA(2) = UserForm1.txt_Sy
    DataA(3) = UserForm1.txt_Cu
    DataA(4) = UserForm1.txt_Pr
    DataA(5) = UserForm1.txt_Qu

    ReDim Preserve DataA(LBound(DataA, 1) To UBound(DataA, 1), LBound(DataA, 2) To UBound(DataA, 2) + 1)
End Sub

但是,在尝试添加提交后,我收到“下标超出范围错误”。这似乎是数组 DataA 的问题,但我不确定错误在哪里。我已在单独的模块中将其声明为公共数组,并在初始化步骤中指定了维度。

对于解决此问题和开始工作的任何帮助将不胜感激。

谢谢

【问题讨论】:

    标签: arrays excel vba userform


    【解决方案1】:

    cmd_add_Click() 中,您需要为数组使用 2 个索引...

    DataA(1, 0) = UserForm1.txt_SM
    

    更新

    看到你的工作簿后,我建议你把你的代码改成这样……

    Private Sub cmd_add_Click()
    
        ReDim d(1 To 1, 1 To 5)
    
        With UserForm1
            d(1, 1) = .txt_SM
            d(1, 2) = .txt_Sy
            d(1, 3) = .txt_Cu
            d(1, 4) = .txt_Pr
            d(1, 5) = .txt_Qu
        End With
    
        ThisWorkbook.Sheets("Portfolio").[a1].End(xlDown).Offset(1).Resize(, 5) = d
    
    End Sub
    

    【讨论】:

    • 感谢您指出这一点,我想我可能已经能够只使用单个索引。不幸的是,我仍然收到错误消息。您知道发生这种情况的任何其他原因吗?
    • DataA(1, 0) =
    • 您需要发布更多代码。或者把工作簿发给我。
    • 我很高兴将工作簿发送给您。您有首选的接收方式吗?
    • daniel.ferry@gmail.com
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-16
    • 1970-01-01
    • 2018-07-21
    • 2016-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多