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

VBA-从用户表单创建数据表,vba,button,Vba,Button,我希望有人能帮我解决这个问题。我在这个网站上搜索了我的电子表格的正确编码,但似乎什么都不起作用 我有两个电子表格:我有一个正面表单(Sheet1),用户可以在其中输入信息。一旦用户输入完他们的信息,他们将按下一个按钮,将数据传输到一个大型数据电子表格(“记录”)。一旦数据从Sheet1复制到记录,我希望Sheet1被清除(以便下一个用户有一个空白表单可以使用)。另外,当一个新用户输入信息时,我希望该信息位于前一个用户在记录上输入的数据下方的一行 我希望这是有意义的。。。这就是我现在使用的代码,它

我希望有人能帮我解决这个问题。我在这个网站上搜索了我的电子表格的正确编码,但似乎什么都不起作用

我有两个电子表格:我有一个正面表单(Sheet1),用户可以在其中输入信息。一旦用户输入完他们的信息,他们将按下一个按钮,将数据传输到一个大型数据电子表格(“记录”)。一旦数据从Sheet1复制到记录,我希望Sheet1被清除(以便下一个用户有一个空白表单可以使用)。另外,当一个新用户输入信息时,我希望该信息位于前一个用户在记录上输入的数据下方的一行

我希望这是有意义的。。。这就是我现在使用的代码,它没有填充“记录”中的任何内容(我显然把它弄得一团糟)

有人对编码有什么建议吗?请让我知道

试试这段代码

关键的一点是按照您希望在
工作表(“记录”)
A到V
中显示的顺序设置
字段

例如,在我的示例中,
e6
映射到列
A
e7
映射到列
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

数组中的值是什么,例如
“c=e6”
?例如,“c”将是记录中的接收列。“E6”是用户首先输入的单元格位置。换言之,按下按钮后,表1中的“E6”理论上会转移到“C”列。其他值也一样:“E7”是用户可以填写的下一个单元格,对应于记录表中的D列。表单上只有五个字段(如您的示例)还是更多?嗨,Alex,用户在表单(Sheet1)上填写了20个字段,对应于记录中的20列(因此A列到V列)。您需要Sheet1的确切字段吗?嗨,Alex,谢谢您的代码!当我点击按钮时,它会清除表1,但不会更新记录表。。。有什么建议吗?嗯。你有没有试过调试下一步的
循环以检查rw和col等的值?当我测试itSub Copy()将字段设置为Range、rw设置为Integer、col设置为Integer字段=Union(Range(“D6:D9”)、Range(“F6:F10”)、Range(“D15:D18”)、Range(“F15:F16”)、Range(“C22:F26”)、Range(“C31:F35”)、Range(“C39:F43”)、Range(“D45:D46”)、rw=工作表(“记录”)时,它对我起到了作用.UsedRange.Rows.Count+1表示列=1到字段。计数工作表(“记录”)。单元格(rw,col)=字段(列,1)下一列字段。ClearContents结束子
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