2015-04-25 52 views
0

我有在Excel表格用一些數據鏈接名稱的列表。我希望能夠創建新的行(來自某些形式的數據),並將它們分類到現有的行中。插入新行和自動排序在Excel

我真的不知道如何在Excel中編寫VBA和找不到插入基於他們的數據行的任何實例。大多數示例都會插入新的空行來設置表格的樣式。

我有了這個與用戶輸入值插入新行:

Sub Test_Function() 
Dim val As String 
val = InputBox("Enter your name", "May I know your Name!") 

'Inserting a Row at at Row 2 
Range("A3").EntireRow.Insert 
Range("A3").Formula = val 
' 
End Sub 

更多信息:數據是在這個佈局設計: 名稱 - 一筆錢來W1 - 貨幣ProvidedW2 - 飲料W1 - W2飲料 - 合計欠費

當進入一個新的名稱,該行需要將公式複製像其他行。在表格的底部是另一行,其中「提供的錢」和「欠的錢」的總和。 (我思故我不能只是將它添加到最後一排,而是插入一個新的,不知道壽...)

+0

你不能只把新行放在底部,然後對錶單進行排序嗎? – Comintern

+0

你能解釋一下這個問題嗎?是插入新的行還是要對數據進行排序?或兩者? – amg

+0

的數據是這種形式:名稱 - 提供W1的錢 - 貨幣ProvidedW2 - 飲料W1 - 飲料W2 - 合計欠費 當進入一個新的名稱,該行需要將公式複製像其他行。 在片材的底部是另一行以「提供金錢」和「欠錢」的總和。 – TijmenBrx

回答

0

我不會插入新行,而是把的結果插入在所述片材的端:

lastRow = Range("A1").End(xlDown).Row + 1 
Range("A" & lastRow) = data1 
Range("B" & lastRow) = data2 'etc. 

,然後通過您喜歡的鍵排序整個片(本實施例中是用於在由A列降序排序AC - 記錄的宏):

Columns("A:C").Select 
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear 
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("A1:A" & lastRow), _ 
     SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal 
    With ActiveWorkbook.Worksheets("Sheet1").Sort 
     .SetRange Range("A1:C" & lastRow) 
     .Header = xlGuess 
     .MatchCase = False 
     .Orientation = xlTopToBottom 
     .SortMethod = xlPinYin 
     .Apply 
    End With 
+0

在我的文檔底部是另一行,包含一些數據。所以我想我真的需要插入一個新的行。這個新行也應該使用與其他行相同的樣式和公式。我不知道這是否會自動發生... – TijmenBrx