Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] работа с excel, через vbs: удалить нужную строку (http://forum.oszone.net/showthread.php?t=265257)

NibelungXXX 30-07-2013 16:19 2193392

работа с excel, через vbs: удалить нужную строку
 
есть файл excel, в нем 5 столбцов и 15 строк.
Как сделать, чтобы смотрелся 5й столбец, и если там значение = 0, то удаляем эту строку, и в итоге становится 14 строк к примеру

Iska 30-07-2013 16:40 2193409

Цитата:

Цитата NibelungXXX
есть файл excel, в нем 5 столбцов и 15 строк. »

Всегда выкладывайте образец документа.

Код:

Option Explicit

Const xlUp = &HFFFFEFBE


Dim objExcel
Dim objRange
Dim objRange4Remove


Set objExcel = WScript.CreateObject("Excel.Application")

With objExcel
        With .Workbooks.Open("C:\Песочница\026\Книга1.xls")
                With .Worksheets.Item(1)
                        Set objRange4Remove = Nothing
                       
                        For Each objRange In .Range("E2:E16")
                                If objRange.Value = 0 Then
                                        If objRange4Remove Is Nothing Then
                                                Set objRange4Remove = objRange.EntireRow
                                        Else
                                                Set objRange4Remove = objExcel.Union(objRange4Remove, objRange.EntireRow)
                                        End If
                                End If
                        Next
                End With
               
                If Not objRange4Remove Is Nothing Then
                        WScript.Echo objRange4Remove.Address
                        objRange4Remove.Delete xlUp
                        .Save
                Else
                        WScript.Echo "Nothing found"
                End If
               
                .Close
        End With
       
        .Quit
End With

Set objExcel = Nothing

WScript.Quit 0

И, кстати, не рекомендую работать с предопределёнными количественными адресами в виде «в нем 5 столбцов и 15 строк».

NibelungXXX 30-07-2013 17:45 2193462

спасибоIska
Цитата:

Цитата Iska
Всегда выкладывайте образец документа. »

он имеет 890 строк и в разных все ищет, не получится:))

Цитата:

Цитата Iska
И, кстати, не рекомендую работать с предопределёнными количественными адресами в виде «в нем 5 столбцов и 15 строк». »

эт точно)) но мне смысл нужен был, чтоб к своему прикрепить) а так вообще хоть кому можно будет цеплять)

Iska 30-07-2013 18:40 2193507

NibelungXXX, смысл в том, чтобы а) отвечающему не приходилось ещё и производить дополнительную работу по созданию и наполнению документа и б) чтобы вопрошающий и отвечающий могли работать на одних и тех же данных. Ибо часто бывает так: код готов, у отвечающего он работает. У вопрошающего — нет. Начинаются расспросы, в результате которых выясняется, что вопрошающий — ах! — забыл о каких-то условиях, структура документа подразумевалась другая, кодировка совсем иная и т.д., и т.п. Вот посему я, раз за разом, даже не прошу, я требую у каждого — «Выкладывайте образцы документов, выкладывайте образцы документов…».


Время: 05:43.

Время: 05:43.
© OSzone.net 2001-