Удаление строк, содержащих перечисленные номера в Excel - PullRequest
0 голосов
/ 02 ноября 2009

У меня есть список чисел в листе Excel. Т.е. один столбец около 20 строк чисел. Допустим, он называется списком A, тогда у меня есть несколько многорядных многостолбцельных таблиц Excel2, в которых столбец C может содержать некоторые номера списка A. Как я могу удалить строки в Excel листа2, которые содержат номера списка A в столбце C

Ответы [ 2 ]

3 голосов
/ 02 ноября 2009

На самом деле невозможно удалить строки из Excel через ADO (http://support.microsoft.com/kb/257819),, однако вы можете создать новый лист, не содержащий строк, которые вы хотите удалить. Это может оказаться проще с заголовками столбцов и именованные диапазоны. Вот пример, который не включает заголовки столбцов или диапазоны, поэтому SQL ссылается на различные столбцы как F n (по умолчанию) и листы как [Лист 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
0 голосов
/ 03 ноября 2009

Способ не для VBA:

  • выберите номера в списке A
  • создать новый пользовательский список из этих чисел: Tools> Options затем Custom Lists в Excel 2003
  • перейдите на sheet2 и отсортируйте столбец C, используя новый пользовательский список: Data> Sort, Options, а затем измените First key sort order на новый пользовательский список

Все строки списка A теперь будут сгруппированы вверху (или внизу, если вы сортируете по убыванию) вашего списка, и вы можете затем удалить их

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...