2009-11-02 39 views
0

我有一個Excel工作表中的數字列表。即,一列約20行數字。讓我們說它的被調用的列表A,然後我有一些多行多列Excel sheet2,其中列C可能包含列表A的一些數字。 如何刪除Excel列表2中包含列表C的列中的行刪除excel中包含列出的數字的行

回答

3

通過ADO(http://support.microsoft.com/kb/257819)從Excel中刪除行是不可能的,但是,您可以創建一個不包含要刪除的行的新工作表。列標題和命名範圍可能會讓您更容易。這裏要說的是不包括列標題或範圍的例子,因此,SQL是指各列爲F ñ(默認)和片材作爲[片材Ñ $]

strFile = Workbooks(1).FullName 
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile _ 
    & ";Extended Properties=""Excel 8.0;HDR=No;IMEX=1"";" 

Set cn = CreateObject("ADODB.Connection") 
cn.Open strCon 
Set rs = CreateObject("ADODB.Recordset") 

strSQL = "SELECT x.F1, x.F2, x.F3, x.F4, x.F5 FROM [Sheet1$] As x " _ 
     & "LEFT JOIN " _ 
     & "[Sheet2$] As y " _ 
     & "ON x.F3=y.F1 " _ 
     & "WHERE y.F1 Is Null" 

rs.Open strSQL, cn 

For i = 0 To rs.Fields.Count - 1 
    Sheets("Sheet3").Cells(1, i + 1) = rs.Fields(i).Name 
Next 

Sheets("Sheet3").Cells(2, 1).CopyFromRecordset rs 
0

非易失VBA的方式來做到這一點:在Excel 2003 >Options然後Custom Lists

  • 名單A
  • 選擇號碼創建一個新的自定義列表這些數字
  • 去使用新的自定義列表到Sheet2和排序列C:Data>SortOptions然後更改First key sort order到新的自定義列表

所有列表中的行現在將一起在頂部分組(或底部如果你排序降序)的列表,然後你可以刪除它們

相關問題