我一直在寻找这个问题的答案,要么我找不到答案,要么我不理解我找到的答案。
我在Excel 2013中有一个工作簿。我正在使用VBA向工作簿添加一些下拉列表和表单,以便于填写。
我拥有的一个用户表单,有一些数据输入字段,当您点击"添加"它将信息添加到表格的最后一行。
以下是该用户表单的代码;
Private Sub Add_Click()
Dim the_sheet As Worksheet
Dim table_list_object As ListObject
Dim table_object_row As ListRow
Set the_sheet = Sheets("Structural")
Set table_list_object = the_sheet.ListObjects(1)
Set table_object_row = table_list_object.ListRows.Add
table_object_row.Range(1, 1).Value = "Deck"
last_row_with_data = the_sheet.Range("A" & Rows.Count).End(xlUp).Row
the_sheet.Range("B" & last_row_with_data) = TextBox3
the_sheet.Range("C" & last_row_with_data) = TextBox4
the_sheet.Range("D" & last_row_with_data) = ComboBox1
Unload Me
End Sub
这又完美无缺,完全符合我的需要。
我有另一个用户表单需要输入数据并让它将数据放在表格的一行中。但我无法弄清楚如何将数据添加到除最后一行之外的任何内容。
现在我有一个宏,当你点击" Add"按钮;
Sub AddRow6Sheet3()
Application.ScreenUpdating = False
Rows("7:7").Insert Shift:=xlDown
Application.ScreenUpdating = True
End Sub
这非常适合在第7行添加行,这是我需要数据的地方。但我需要数据然后输入到创建的新行7。此表单将始终输入第7行。
但我还想知道如何将数据添加到任何行。因为在工作簿的后面我会遇到类似的问题。
答案 0 :(得分:0)
Call AddRow6Sheet3
ActiveSheet.ListObjects("Table13").ListRows.Add (7)
With Sheets("Misc Metals")
.Range("B7").Value = Me.ComboBox5.Value
.Range("C7").Value = Me.ComboBox1.Value
.Range("D7").Value = Me.ComboBox2.Value
.Range("E7").Value = Me.ComboBox3.Value
.Range("F7").Value = Me.ComboBox4.Value
.Range("G7").Value = Me.ComboBox6.Value
End With
Unload MeEnd Sub
如果我需要Macro和ListRows.Add行,我还在玩。我知道如果没有宏,它就无法正常工作。它似乎覆盖了第7行中的内容。
由于