2016-02-22 38 views
0

我一直在寻找无处不在的问题的答案,要么我一直无法找到一个或我不明白我找到的答案。在Excel中添加一行到Excel中使用VB

我在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 

再次,这工作完美,并做到我需要它做。

我有另一个用户表单,我需要输入数据,并让它把数据放在表中的一行。但我不知道如何将数据添加到除最后一行之外的任何内容。

现在我有一个宏,当你点击“添加”按钮时运行;

Sub AddRow6Sheet3() 
    Application.ScreenUpdating = False 
    Rows("7:7").Insert Shift:=xlDown 
    Application.ScreenUpdating = True 
End Sub 

这很适合在第7行添加一行,这是我需要数据去的地方。但是我需要这些数据才能获得输入到创建的新行7中。这种形式将始终输入到第7行。

但我也想知道如何将数据添加到任何行。因为稍后在工作簿中,我将遇到类似的问题。

+0

[此引用可能会派上用场(http://www.thespreadsheetguru.com/blog/2014/6/20/the-vba-引导到的ListObject-Excel的表) –

回答

0

斯科特,那并没有完全回答我的问题。但是那里有很多有用的信息,而且这个链接的其中一个东西确实给了我一个想法,最终成为我需要的东西。该工程的代码如下 私人小组Add_Click()

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 

我还是用我是否需要宏观和中ListRows.Add线播放。我知道没有这个宏,它就无法正常工作。它只是似乎覆盖了在第7行

感谢