我在Excel表格中有一个数字列表。即。一列约20行数字。让我们说它的被叫列表A然后我有一些多行多列Excel表2,其中列C可能包含一些列表A的数字。 如何删除excel sheet2中包含列C中的列表A数字的行
答案 0 :(得分:3)
实际上无法通过ADO(http://support.microsoft.com/kb/257819)从Excel中删除行,但是,您可以创建一个不包含要删除的行的新工作表。您可能会发现列标题和命名范围更容易。下面是一个不包含列标题或范围的示例,因此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
答案 1 :(得分:0)
非VBA方式是:
Tools
> Options
然后Custom Lists
Data
> Sort
,Options
,然后将First key sort order
更改为新的自定义列表所有列表A行现在将在列表的顶部(如果排序降序排在底部)组合在一起,然后您可以删除它们