2016-07-11 34 views
-1

如果有新數據添加到Excel中,而不是更改我的代碼(硬代碼),如果我添加數據,我該怎麼辦?在第6行第7行,那麼我必須聲明範圍(A6:LY6)的rng6。由於我在excel vba中仍然是新的,因此需要針對此案例提供一些示例。非常感謝你。希望編輯使問題變得可以理解。對不起再次指出它清楚。使代碼適應更改而不是硬編碼,如下所示

Dim rng1 As Range 
Dim rng2 As Range 
Dim rng3 As Range 
Dim rng4 As Range 
Dim rng5 As Range 

Set rng1 = Range("A1:AC1").SpecialCells(xlCellTypeBlanks) 
Set rng2 = Range("A2:LY2").SpecialCells(xlCellTypeBlanks) 
Set rng3 = Range("A3:LY3").SpecialCells(xlCellTypeBlanks) 
Set rng4 = Range("A4:LY4").SpecialCells(xlCellTypeBlanks) 
Set rng5 = Range("A5:LY5").SpecialCells(xlCellTypeBlanks) 


rng1.Rows.Delete Shift:=xlToLeft 
rng2.Rows.Delete Shift:=xlToLeft 
rng3.Rows.Delete Shift:=xlToLeft 
rng4.Rows.Delete Shift:=xlToLeft 
rng5.Rows.Delete Shift:=xlToLeft 

回答

1

據我所知,你想刪除每行的空白單元格,但你不知道你有多少行?

第一步是確定需要編輯多少行?

如果A列始終包含信息(非空),你可以簡單地寫lastRow = Range("A1").End(xlDown).Row得到列中的最後一個非空電池的

如果A列中包含空格,你必須弄清楚一個聰明的方式來獲得你想編輯的範圍,例如。

現在遍歷行並編輯它們。

Sub test() 
Dim rng As Range 
Dim row As Integer 
Dim lastRow As Integer 
'To avoid errors when no empty cells are found: 
On Error Resume Next 
'Unless you have Another way to determine how many rows to delete: 
lastRow = Range("A1").End(xlDown).Row 
'Loop through the rows: 
For row=1 To lastRow 
    'Select the empty cells in this row: 
    Set rng = Range("A" & Row & ":LY" & Row).SpecialCells(xlCellTypeBlanks) 
    'Delete the empty cells: 
    rng.Delete Shift:=xlToLeft 
Next 
End Sub 

希望這是你在找什麼。

+0

它確實有幫助,但我不想申報rng2直到rng5,因爲我將在A5之後添加更多數據,只是忽略了A1:AC1。如果我有更多的數據,我需要申報一些更像rng6,rng7,rng8等 –

+0

請看我編輯的答案 – Carmelid

1

用於動態選擇所有範圍數據(查找最後一行和一列)的代碼,假定您的數據具有與所有行相同的列數。

Dim lastCol As Long 
Dim lastRow As Long 
Dim rng1 As Range 

With ActiveSheet 
    lastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column 
    lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row 

    Set rng1 = Range(Cells(1, 1), Cells(lastRow, lastCol)).SpecialCells(xlCellTypeBlanks) 
End With 
+0

嗨,我已經編輯我的代碼,以便您理解,對於理解我的不便之處感到抱歉完成。 –

+0

謝謝,是第一行用於'AC',而所有其他行都是'LY'。我們可以假設所有未來添加的行都具有相同的數據結構和列數? –

+0

是的,你是對的,未來的數據具有相同的數據結構和列數,但忽略AC行。 –

相關問題