VBA - 从用户表单创建数据 Sheet
VBA - Creating a Data Sheet from a User Form
我希望有人能帮助我解决我的问题。我已经在该网站上搜索了我的电子表格的正确编码,但似乎没有任何效果。
我有两个电子表格:我有一个前置表单 (Sheet1),用户可以在其中输入信息。用户输入完信息后,他们将按下一个按钮,将数据传输到大型数据电子表格 ("Records")。将数据从 Sheet1 复制到 Records 后,我希望 Sheet1 清除(以便下一个用户可以使用空白表格)。此外,当新用户输入信息时,我希望该信息位于前一个用户在 Records 上输入的数据下方的一行中。
我希望这是有道理的...这是我现在使用的代码,它没有填充 "Records" 中的任何内容(我显然把它弄得一团糟)。
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
有人对编码有什么建议吗?请告诉我!
试试这个代码。
关键位是根据您希望它们出现在 worksheets("Records")
列 A to V
中的顺序设置 fields
。
例如,在我的示例中,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
我希望有人能帮助我解决我的问题。我已经在该网站上搜索了我的电子表格的正确编码,但似乎没有任何效果。
我有两个电子表格:我有一个前置表单 (Sheet1),用户可以在其中输入信息。用户输入完信息后,他们将按下一个按钮,将数据传输到大型数据电子表格 ("Records")。将数据从 Sheet1 复制到 Records 后,我希望 Sheet1 清除(以便下一个用户可以使用空白表格)。此外,当新用户输入信息时,我希望该信息位于前一个用户在 Records 上输入的数据下方的一行中。
我希望这是有道理的...这是我现在使用的代码,它没有填充 "Records" 中的任何内容(我显然把它弄得一团糟)。
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
有人对编码有什么建议吗?请告诉我!
试试这个代码。
关键位是根据您希望它们出现在 worksheets("Records")
列 A to V
中的顺序设置 fields
。
例如,在我的示例中,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