2017-02-17 54 views
-3

我正試圖自動完成更新我們從數據庫中的客戶端收到的數據的電子表格。 第一步是在每列的末尾添加空白行,以便可以用新數據填充它們。Excel VBA在每個值的末尾添加行

enter image description here

邏輯上我認爲它會是這樣的: 1.找到 「客戶端1」 的最後一個實例 2.添加行

任何建議表示讚賞。請讓我知道,如果這不夠描述。

+0

爲什麼你需要在未來添加行,而不是把值可用行?你的意思是你需要複製行嗎?在任何情況下檢查Range對象的.End屬性:https://msdn.microsoft.com/en-us/library/office/ff839539.aspx – Absinthe

+0

1.我需要添加行,以便我可以使用收到最新數據。這是我第二個使用VBA的項目。我不知道我在做什麼。我不是想利用好的SO人。我嘗試了一些東西,但我發現的東西甚至都很接近。我想出了一個非常漫長的工作。但我認爲必須有一些簡單的For循環或甚至是我不知道的單個函數。 –

+0

應該不需要添加空白行,因爲您可以將其添加到底部,然後按客戶端排序行,然後按日期排序,從而爲您提供所需的最終結果。檢查[這裏](https://www.thespreadsheetguru.com/blog/2014/7/7/5-different-ways-to-find-the-last-row-or-last-column-using-vba)for識別最後一行,並[在此](https://msdn.microsoft.com/en-us/library/office/ff840646.aspx)對錶進行排序。如果您在執行這些功能時遇到困難,請在您的問題中添加編輯,包括您目前使用的代碼,我們將幫助您解決問題。 – MoondogsMaDawg

回答

0

你,你可以運行一個簡單的循環中的值列中的每個單元比較和值更改時添加行:

Sub InsertClient() 

lastrow = Cells(Rows.Count, "A").End(xlUp).Row 

    For i = lastrow To 2 Step -1 
     If i = lastrow Then 
     Range("A" & i + 1).Value = Range("A" & i).Value 
     End If 

     If Range("A" & i).Value <> Range("A" & i - 1).Value Then 
     Rows(i).Insert shift:=xlShiftDown 
     Range("A" & i).Value = Range("A" & i - 1).Value 
     End If 

    Next i 

End Sub 
相關問題