2015-12-21 96 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