Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Поиск отличного от нуля значения в excel с помощтю VBScript - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск отличного от нуля значения в excel с помощтю VBScript (Иное/Other)
Поиск отличного от нуля значения в excel с помощтю VBScript
Volodya Дата: Среда, 13.12.2017, 05:33 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Всем привет.

Возникла необходимость с помощью скрипта в заданном столбце .xls-файла найти значение отличное от нуля. Если такое значение действительно есть, то нужно запустить следующий скрипт (его я сделал), если такого значения нет, - выход.

Написал такой код:

[vba]
Код
Dim oXL

Set oXL = Wscript.CreateObject("Excel.Application")

oXL.Visible = false

oXL.Workbook.Add("D:\cmd\stattochki\fill\out\inK.xls")

Row = 1

Col = 2

Do While oXL.Cells(Row, Col).value <> 0

Row = Row + 1

Loop
[/vba]

Дальше не знаю как прописать условие. За любую помощь буду благодарен.

 
Ответить
СообщениеВсем привет.

Возникла необходимость с помощью скрипта в заданном столбце .xls-файла найти значение отличное от нуля. Если такое значение действительно есть, то нужно запустить следующий скрипт (его я сделал), если такого значения нет, - выход.

Написал такой код:

[vba]
Код
Dim oXL

Set oXL = Wscript.CreateObject("Excel.Application")

oXL.Visible = false

oXL.Workbook.Add("D:\cmd\stattochki\fill\out\inK.xls")

Row = 1

Col = 2

Do While oXL.Cells(Row, Col).value <> 0

Row = Row + 1

Loop
[/vba]

Дальше не знаю как прописать условие. За любую помощь буду благодарен.


Автор - Volodya
Дата добавления - 13.12.2017 в 05:33
Hugo Дата: Среда, 13.12.2017, 10:23 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3250
Репутация: 707 ±
Замечаний: 0% ±

2019
И что, работает?
Лист берёте какой попало?
Ну если не особо долго нужно ячейки перебирать - то можно так:

[vba]
Код
Dim oXL, wb

Set oXL = Wscript.CreateObject("Excel.Application")

oXL.Visible = false

set wb = oXL.Workbooks.open("c:\Downloads\_Test.xls")

Row = 1

Col = 2

Do
Row = Row + 1
Loop While wb.sheets(1).Cells(Row, Col).value = 0

msgbox "Row = " & Row & " - " & wb.sheets(1).Cells(Row, Col).value

wb.close 0

set wb = nothing
set oXL = nothing
[/vba]


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеИ что, работает?
Лист берёте какой попало?
Ну если не особо долго нужно ячейки перебирать - то можно так:

[vba]
Код
Dim oXL, wb

Set oXL = Wscript.CreateObject("Excel.Application")

oXL.Visible = false

set wb = oXL.Workbooks.open("c:\Downloads\_Test.xls")

Row = 1

Col = 2

Do
Row = Row + 1
Loop While wb.sheets(1).Cells(Row, Col).value = 0

msgbox "Row = " & Row & " - " & wb.sheets(1).Cells(Row, Col).value

wb.close 0

set wb = nothing
set oXL = nothing
[/vba]

Автор - Hugo
Дата добавления - 13.12.2017 в 10:23
Volodya Дата: Среда, 13.12.2017, 12:16 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Hugo, перебирать совсем не долго нужно. На каком моменте в вашем коде будет запускаться другой скрипт?
 
Ответить
СообщениеHugo, перебирать совсем не долго нужно. На каком моменте в вашем коде будет запускаться другой скрипт?

Автор - Volodya
Дата добавления - 13.12.2017 в 12:16
Hugo Дата: Среда, 13.12.2017, 14:48 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3250
Репутация: 707 ±
Замечаний: 0% ±

2019
Запускайте вместо msgbox, правда там нет ветвления нашли/нет, но это легко дописать как угодно.
И может книгу можно/нужно и закрыть перед этим, я не знаю что за скрипт там второй.
P.S. ещё вариант, если usedrange начинается с первой строки:
[vba]
Код
Dim oXL, wb, flag

Set oXL = Wscript.CreateObject("Excel.Application")

oXL.Visible = false

set wb = oXL.Workbooks.open("c:\Downloads\_Test.xls")

'Row = 1

Col = 2

for Row = 1 to wb.sheets(1).usedrange.rows.count
if wb.sheets(1).Cells(Row, Col).value <> 0 then
flag=true
exit for
end if
next

if flag then msgbox "Row = " & Row & " - " & wb.sheets(1).Cells(Row, Col).value

wb.close 0

set wb = nothing
set oXL = nothing
[/vba]


excel@nxt.ru
webmoney: E265281470651 Z422237915069


Сообщение отредактировал Hugo - Среда, 13.12.2017, 15:06
 
Ответить
СообщениеЗапускайте вместо msgbox, правда там нет ветвления нашли/нет, но это легко дописать как угодно.
И может книгу можно/нужно и закрыть перед этим, я не знаю что за скрипт там второй.
P.S. ещё вариант, если usedrange начинается с первой строки:
[vba]
Код
Dim oXL, wb, flag

Set oXL = Wscript.CreateObject("Excel.Application")

oXL.Visible = false

set wb = oXL.Workbooks.open("c:\Downloads\_Test.xls")

'Row = 1

Col = 2

for Row = 1 to wb.sheets(1).usedrange.rows.count
if wb.sheets(1).Cells(Row, Col).value <> 0 then
flag=true
exit for
end if
next

if flag then msgbox "Row = " & Row & " - " & wb.sheets(1).Cells(Row, Col).value

wb.close 0

set wb = nothing
set oXL = nothing
[/vba]

Автор - Hugo
Дата добавления - 13.12.2017 в 14:48
Volodya Дата: Четверг, 14.12.2017, 04:43 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Hugo, спасибо большое. Первый вариант допилил, заработало. Второй тоже рабочий, но мне не подходит.
 
Ответить
СообщениеHugo, спасибо большое. Первый вариант допилил, заработало. Второй тоже рабочий, но мне не подходит.

Автор - Volodya
Дата добавления - 14.12.2017 в 04:43
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск отличного от нуля значения в excel с помощтю VBScript (Иное/Other)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!