删除包含Excel中列出的数字的行

我有一个Excel表中的数字列表。 也就是说 一列约20行数字。 让我们说它的被调用的列表A,然后我有一些多行多列Excel Sheet2,其中列C可能包含列表A的一些数字。我如何删除Excel表Sheet2中包含列C中的数字

通过ADO( http://support.microsoft.com/kb/257819 )从Excel删除行是不可能的,但是,您可以创build一个不包含要删除的行的新工作表。 列标题和命名范围可能会让您更容易find它。 下面是一个不包含列标题或范围的例子,所以SQL将各列作为F n (默认值),而表单称为[Sheet n $]

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 

非VBA的方式是:

  • select列表A中的数字
  • 创build这些数字的新自定义列表: Tools > Options然后在Excel 2003中Custom Lists
  • 转到sheet2并使用新的自定义列表对列C进行SortData > SortOptions ,然后将First key sort order更改为新的自定义列表

现在,所有列表中的A行将被列在列表的顶部(或者如果您按降序排列,则列在底部),然后您可以删除它们