VBA - 从用户表单创建数据表

时间:2015-03-21 07:01:48

标签: vba button

我希望有人可以帮我解决我的问题。我在这个网站上搜索了我的电子表格的正确编码,但似乎没有任何效果。

我有两个电子表格:我有一个前置表单(Sheet1),用户可以在其中输入信息。一旦用户输入了他们的信息,他们将按下一个按钮,将数据传输到大型数据电子表格("记录")。一旦数据从Sheet1复制到Records,我希望Sheet1清除(以便下一个用户有一个空白表单可供使用)。此外,当新用户输入信息时,我希望该信息在记录上先前用户的数据输入下面的行上。

我希望这是有道理的......这是我现在使用的代码,它不会填充"记录" (我显然弄得一团糟)。

Sub BUTTON()
Dim refTable As Variant, trans As Variant
refTable = Array("c = e6", "d = e7", "e=e8", "f=e9", "g=e10")
Dim Row As Long
Row = Worksheets("Records").UsedRange.Rows.Count + 1
For Each trans In refTable
    Dim Dest As String, Field As String
    Dest = Trim(Left(trans, InStr(1, trans, "=") - 1)) & Row
    Field = Trim(Right(trans, Len(trans) - InStr(1, trans, "=")))
Next

End Sub

有没有人对编码有任何建议?请让我知道!

1 个答案:

答案 0 :(得分:0)

试试这段代码。

关键位是根据您希望它们在fieldsworksheets("Records")中显示的顺序设置A to V

例如,在我的示例中e6映射到列Ae7到列B等。

Sub MapInputToColumn()
    Dim fields As Range, rw As Integer, col As Integer

    Set fields = Union(Range("e6"), Range("e7"), Range("e8"), Range("e9"), Range("e10"))
    rw = Worksheets("Records").UsedRange.Rows.Count + 1

    For col = 1 To fields.Count
        Worksheets("Records").Cells(rw, col) = fields(col, 1)
    Next col

    fields.ClearContents
End Sub