2012-12-14 101 views
2

請幫助..我需要一個宏來刪除基於行號(行號)的特定行,例如,如果我想刪除第二,第九,第20,第150行,如何在宏中完成,請提供一個宏,我可以在代碼中複製和粘貼行號並從模塊運行。我在Sheet2的A列的行數中的行從工作表Sheet1Excel Marcro - 根據行號刪除一行

+1

則需要籤這個[刪除Excel中VBA連續] [1] [1]:http://stackoverflow.com/questions/7851859/delete-a-row -in-excel-vba – Alaa

+0

歡迎來到Stackoverflow。你有什麼嘗試? – cordialgerm

回答

2

一行被刪除:

Rows(4).Delete Shift:=xlUp 

對於多行:

Union(Rows(4), Rows(7)).Delete Shift:=xlUp 

針對您的特殊情況下允許根據源表中的行號列表動態刪除行。將SourceWks更改爲數字存儲和刪除工作表的工作表,其中行將被刪除。

Dim deleteRows As Range 
Dim data() As Variant 
Dim i As Double 

Dim SourceWks As Worksheet, deleteWks As Worksheet 

Set SourceWks = Sheet2 
Set deleteWks = Sheet1 

    With SourceWks 
     data = .Range(.Cells(1, 1), .Cells(1, 1).End(xlDown)) 
    End With 

    Set deleteRows = deleteWks.Rows(data(1, 1)) 

    For i = 2 To UBound(data, 1) 

     Set deleteRows = Union(deleteRows, deleteWks.Rows(data(i, 1))) 

    Next i 

    deleteRows.Delete Shift:=xlUp 
+0

hi philip一個巴恩斯,即時零在vba,這工作正常,但我有很多特定的行,我該怎麼做呢?請幫助 – davidb

+0

@davidb:如果您有許多特定的行,請使用第二個代碼示例,在其中刪除第4行和第7行。按您的要求擴展並更改它。 – InContext

+0

我有我想要在sheet2列A中刪除的行號,它真的很耗時在代碼中逐個輸入,你能給我一個代碼,它從sheet2中讀取行號並從sheet1中刪除提到的行嗎? ?我有sheet2列的行號A – davidb