2015-12-21 75 views
1

我在Excel中创建了一个简单的表格,用于将数据插入电子表格。我的表中有第2行的标题和第3行的空白表格。当我将数据表格输入第一个空行时,它从第4行开始(表格下方的第一行)。我想要将数据插入现有的表中。我怎样才能做到这一点?从表格中插入数据

这是我的窗体添加按钮的代码:

Private Sub Add_Click() 

TrackingDate = UserForm1.TrackingDate.Value 
INS = UserForm1.INS.Value 
COY = UserForm1.COY.Value 
Amount = UserForm1.Amount.Value 
InvoiceDate = UserForm1.InvoiceDate.Value 
InvoiceNumber = UserForm1.InvoiceNumber.Value 
PolicyNumber = UserForm1.PolicyNumber.Value 
Reminder = UserForm1.Reminder.Value 
Cheque = UserForm1.Cheque.Value 
Status = UserForm1.Status.Value 

Range("A" & Rows.Count).End(xlUp).Offset(1).Value = TrackingDate 
Range("B" & Rows.Count).End(xlUp).Offset(1).Value = INS 
Range("C" & Rows.Count).End(xlUp).Offset(1).Value = COY 
Range("D" & Rows.Count).End(xlUp).Offset(1).Value = Amount 
Range("E" & Rows.Count).End(xlUp).Offset(1).Value = InvoiceDate 
Range("F" & Rows.Count).End(xlUp).Offset(1).Value = InvoiceNumber 
Range("G" & Rows.Count).End(xlUp).Offset(1).Value = PolicyNumber 
Range("H" & Rows.Count).End(xlUp).Offset(1).Value = Reminder 
Range("I" & Rows.Count).End(xlUp).Offset(1).Value = Cheque 
Range("J" & Rows.Count).End(xlUp).Offset(1).Value = Status 

End Sub 
+1

每分钟:http://www.meadinkent.co.uk/xl-update-list.htm – Luuklag

回答

0

你的代码可以这样写:谷歌搜索的

Private Sub Add_Click() 
    Dim i&: i = [A:J].Find("*", , xlValues, , xlByRows, xlPrevious).Row + 1 'find the last empty row range("A:J") 
    With UserForm1 
     Range("A" & i).Value = .TrackingDate.Value 
     Range("B" & i).Value = .INS.Value 
     Range("C" & i).Value = .COY.Value 
     Range("D" & i).Value = .Amount.Value 
     Range("E" & i).Value = .InvoiceDate.Value 
     Range("F" & i).Value = .InvoiceNumber.Value 
     Range("G" & i).Value = .PolicyNumber.Value 
     Range("H" & i).Value = .Reminder.Value 
     Range("I" & i).Value = .Cheque.Value 
     Range("J" & i).Value = .Status.Value 
    End With 
End Sub 
+0

Thak you @Vasily。它现在从第3行开始,但表格没有扩展。 – pantera

+0

你是什么意思下的“表不延长”?如果你有一个'ListObjects(“SomeTable)'那么你可以使用'resize'方法为它的扩展,例如'ActiveSheet.ListObjects(”命名表“)。调整范围(” A2:J”&I) ' – Vasily

+0

太棒了!这是我需要的。谢谢@Vasily – pantera

0

当您使用Range("A" & Rows.Count).End(xlUp)接近一个Excel的“表”,即登记将是“表”的最后一个单元格,即使该电池的第一个单元格是空白的。我没有测试它,但怀疑如果你的“表”是所有的值,那么它将不会自动扩展自己,如果在空白行下输入内容。

你可以尝试在表格的最后一栏增加一个无害的公式像=Row()和隐藏该列 - 那么该表应自动延长。

+0

谢谢你的答案。不幸的是,这是行不通的。 – pantera