2009-11-02 89 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到新的自定义列表

所有列表中的行现在将一起在顶部分组(或底部如果你排序降序)的列表,然后你可以删除它们

相关问题