(Excel)数据输入表格将数据输入到表格
问题描述:
我已经在表格中创建了一个数据输入表单,并希望输入的信息被提取并放置在一张单独的表格中。(Excel)数据输入表格将数据输入到表格
下面的图片会让你更好地了解我正在努力实现的目标。
我明白,我将需要一个宏,以实现这一目标链接到一个按钮。
我试着谷歌的解决方案,并遇到这个代码,显然需要的数据并将其输入到表中。这是代码;
Sub copyRow()
Dim ws As Worksheet
Dim lRow As Long
' define which worksheet to work on, i.e. replace Sheet1 with the name of your sheet
Set ws = ActiveWorkbook.Sheets("Data Entry")
' determine the last row with content in column A and add one
lRow = ws.Cells(Rows.Count, "A").End(xlUp).Row + 1
' combine G7 and G8 and copy into column A, next empty row
ws.Range("A" & lRow) = ws.[G7] & " " & ws.[G8]
' copy the other cells into their ranges
ws.Range("C6:F6").Copy ws.Range("B" & lRow)
ws.Range("C7:F7").Copy ws.Range("F" & lRow)
ws.Range("C8:F8").Copy ws.Range("J" & lRow)
ws.Range("C9:F9").Copy ws.Range("N" & lRow)
ws.Range("C10:F10").Copy ws.Range("R" & lRow)
ws.Range("C11:F11").Copy ws.Range("V" & lRow)
ws.Range("C12:F12").Copy ws.Range("Z" & lRow)
ws.Range("G6").Copy ws.Range("AD" & lRow)
ws.[A1].Select
End Sub
答
如果你还没有在VBA编码前,然后执行以下操作:
1)填写所有字段表单中的一些真实的数据。
2)开始录制一个宏。 3)在你的表格中插入一个新行(右键点击 - >插入 - >上面的表格行)。
4)复制表单中的第一个单元格(资产标签)。
5)单击输出表中的相关输出单元(测试日志中的C5
)。
6)将值粘贴到单元格中。
7)重复步骤4-6,直到完成所有表单域。
8)停止录制宏。 9)右键单击按钮并将宏指定给它。
10)测试,修复并重试。
通过这样做,您可以在VBA中使用宏记录引擎,这是一个很好的开始使用VBA的方式,而不需要太多的知识。您想要将行添加到表中,以便宏创建的固定引用(例如Test Log'!$C$5
)始终引用空单元格。
不幸的是,宏录像机会记录下你所做的所有事情,所以你通常会想要进入代码并改变它,并让它工作。但这实际上是开始使用VBA的好方法。
当您清除窗体并将其分配给不同的按钮时,您的第二个项目将记录新的宏。
答
试试这个
Sub Demo()
Dim lastRow As Long, i As Long
Dim srcSht As Worksheet, destSht As Worksheet
Dim cellArr As Variant, valueArr(0 To 9) As Variant
Application.ScreenUpdating = False
Set srcSht = ThisWorkbook.Sheets("Data Entry") 'this is your Data Entry sheet
Set destSht = ThisWorkbook.Sheets("Test Log") 'this is your Test Log sheet
cellArr = Array("E8", "C11", "J8", "C20", "C17", "C14", "C23", "C26", "C29", "C32") 'store the cell address in an array
With srcSht 'get the corresponding cell values from Data Entry sheet using cellArr
For i = LBound(cellArr) To UBound(cellArr)
valueArr(i) = .Range(cellArr(i))
Next i
End With
With destSht 'add data as a row at bottom of Test Log sheet
lastRow = .Cells(.Rows.Count, "C").End(xlUp).Row + 1
'.Range("C" & lastRow).Resize(1, UBound(valueArr) + 1).Value = valueArr
.Range("C" & lastRow & ":L" & lastRow).Value = valueArr
End With
Application.ScreenUpdating = True
End Sub
你尝试过什么码? – braX
只需编辑您的帖子并添加代码即可。 – braX
您需要将代码调整为电子表格。它目前的基础是你的数据条目表上的行数,而不是测试日志表...... –