1795

Пингуем из Excel

Excel - это не только ВПР и дашборды, но и забавно, а иногда - бессмысленно и беспощадно.

На Youtube есть канал, где его автор творит в екселе всякие админские непотребства. Сейчас он дошёл до отправки в телеграм сообщений о результатах мониторинга.  Я иногда подбираю у него идеи, однако сильно чешусь в неприличных местах, когда вижу его код.

Увага: просмотр канала опасен для неокрепшей психики юных админов.

После просмотра видео, где он пингует список хостов, я подумал: а какого чёрта! И переписал это на свой лад.

Основная нагрузка - функция Ping

Function Ping(IP)

Ping = CreateObject("Wscript.Shell").Run("ping -n 1 -w 1000 " & IP, 0, True) = 0

End Function


Запускает внешний процесс, в котором выполняет собственно ping до нужного хоста.

В оригинале было так:

Весь остальной код - рюшечки вокруг этой функции: обход списка заданное количество раз, раскрашивание ячеек, ожидание паузы и проч.
Файл доступен по ссылке https://disk.yandex.ru/d/cA1XcK44Dx4uwQ

MS, Libreoffice & Google docs

783 поста15K подписчика

Правила сообщества

1. Не нарушать правила Пикабу

2. Публиковать посты соответствующие тематике сообщества

3. Проявлять уважение к пользователям

4. Не допускается публикация постов с вопросами, ответы на которые легко найти с помощью любого поискового сайта.

По интересующим вопросам можно обратиться к автору поста схожей тематики, либо к пользователям в комментариях


Важно - сообщество призвано помочь, а не постебаться над постами авторов! Помните, не все обладают 100 процентными знаниями и навыками работы с Office. Хотя вы и можете написать, что вы знали об описываемом приёме раньше, пост неинтересный и т.п. и т.д., просьба воздержаться от подобных комментариев, вместо этого предложите способ лучше, либо дополните его своей полезной информацией и вам будут благодарны пользователи.

Утверждения вроде "пост - отстой", это оскорбление автора и будет наказываться баном.

Вы смотрите срез комментариев. Показать все
1
Автор поста оценил этот комментарий

В Ping.xlsm я бы цикл как-то так написал:
For Each cc In Range(Cells(2, 2), Cells(2, 2).End(xlDown))
Если я захочу что-нибудь внизу написать, какую-нибудь заметку, то твой цикл сломается.

Вместо LoopTimeout t0, timeout лучше написать
Application.Wait DateAdd("s", S, Now)
Эта функция не грузит процессор, как твоя.

Вот так бы написал, а не через + и CStr: "TESTING loop " & loops
И поменьше бы писал в одну строку. Что объявлений, что присваиваний, что условий это касается.

Ну, и сам нового немного узнал: UsedRange и Like в условии. Тоже польза.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

1. Можно и так, я не очень люблю размещать разнородную информацию в таблицах, поэтому не забочусь  о наличии чего-то, что не является данными. С другой стороны, End(xlDown)  остановится на пустой ячейке - "а вдруг мне захочется что-то удалить"? Также можно использовать CurrentRegion на любой ячейке - аналогично нажатию CTRL + * выделят непустой прямоугольник вокруг заданной ячейки.

2. Можно и так. Да, не грузит, но при этом Excel "замерзает" и не обновляет экран. При более или менее долгой паузе получаем белый прямоугольник и панику у пользователя :"А-а-а всё зависло!". В моём случае можно вставить любой индикатор прогресса - хоть форму. хоть в ячейку проценты писать. А загрузка... Да и чёрт с ней.

3. Виновен ;)

4. В одну строчку я объединяю операторы, которые выполняют более или менее однородный блок действий, своего рода подпрограмма. Насчёт читаемости - с одной стороны, это слегка её затрудняет, с другой - делает листинг короче, что повышает читаемость.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества