2014-02-26 82 views
1

我正在設計一個包含12行數據的數據提交電子表格(當前第22至33行)。行34至42填充了文本。如果要輸入多於12個數據集,使用與第33行相同的格式,使用分配給按鈕的宏,我想在第33行下添加一個新行(第34行)。這很容易,但如果我需要在第34行下面的另一個新行(現在是第35行),我需要一個代碼是靈活的做到這一點;我總是在第33行下面添加新行,而不是在數據輸入集的最後一行之下。我該怎麼做呢?我是很新的VBA ...在最後一行下方添加行

感謝,

安迪

回答

0

我不認爲唐的回答會的工作,因爲你的國家,你有文本行34至42

如果文本值行34中的單元格不會更改,您可以搜索該單元格並在其上插入一行。

Dim someText As String 
someText = "Text value of row 34" 

Dim currentRange As Range 
Set currentRange = Selection 

With Range("A:A").find(someText) 'change the range if needed 
    .EntireRow.Insert 
    .Offset(-2).EntireRow.Copy 
    .Offset(-1).EntireRow.PasteSpecial xlPasteFormats 'change the paste type as needed 
End With 
Application.CutCopyMode = False 'get rid of the marching ants 
currentRange.Select 'select whatever was selected before 
'alternative: Range("A1").Select 
+0

Thanks 2tsai;這就像一個魅力!當我運行這個時,新行被完全選中。我如何才能選擇列A中的單元格? – Reindeer

+0

我編輯了代碼以重新選擇在宏運行之前所選的內容。如果您想選擇另一個範圍,只需更改代碼塊的最後一行。 – 2tsai

+0

美麗!快速響應非常感謝。而奇妙的是:我甚至開始明白這是如何工作的:)! – Reindeer

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

變化 「A」 到始終在有數據的列的名稱。

您LASTROW變量可以被用來作爲:

Range("A" & lastrow).Value = "blah"