Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 154 След.
Сохранить веб-страницу (VBA) + PQ обработка таблицы
 
Оказывается, сайт поддерживает IE.
Тогда проверьте еще такую версию:
Код
Sub UpdateTable()
' ZVI:2025-06-06 https://www.planetaexcel.ru/forum/?PAGE_NAME=message&FID=1&TID=17134
' IE version
  Const FILE = "Table.htm"
  Const URL = "https://www.e-disclosure.ru/portal/files.aspx?id=1976&type=3"
  Dim i As Long, j As Long
  Dim s As String, sFile As String
  With CreateObject("InternetExplorer.Application")
    .Silent = True
    .navigate URL
    While .Busy Or .readyState <> 4: DoEvents: Wend
    s = .Document.body.innerHTML
    .Quit
  End With
  i = InStr(s, "<table")
  j = InStr(i + 1, s, "</table>")
  If j = 0 Then
    MsgBox "Site Table not found!", vbExclamation, "Exit"
    Exit Sub
  End If
  s = "<html><body>" & vbLf & Mid(s, i, j - i + Len("</table>")) & vbLf & "</body></html>"
  sFile = ThisWorkbook.Path & "\" & FILE
  On Error Resume Next
  With CreateObject("ADODB.Stream")
    .Type = 2
    .Mode = 3
    .Charset = "UTF-8"
    .Open
    .WriteText s
    .SaveToFile sFile, 2
    .Close
  End With
  If Err Then MsgBox Err.Description, vbExclamation, "Error #" & Err
End Sub

У меня работает, впрочем, что только у меня в Win10 не работает )
Если в Вашей Win11 уже нет IE, то по инфо от MS в его браузере (на форме/листе) должно будет работать.
Сохранить веб-страницу (VBA) + PQ обработка таблицы
 
Если вручную работает, то позже нарисую и протестирую код для PDF
Сохранить веб-страницу (VBA) + PQ обработка таблицы
 
Цитата
написал:
не нашел только в библиотеке Reference MSXML2.XMLHTTP версии 3.0
Должно быть так:

Интересно бы узнать версию операционки, офиса и браузера по умолчанию.
И что, даже вручную распечатать в PDF не получается?
Сохранить веб-страницу (VBA) + PQ обработка таблицы
 
Остается еще в запасе упомянутое здесь сохранение в PDF и подключение его к PQ (не тестировал)
P.S. Кодом, конечно
Изменено: ZVI - 06.06.2025 13:56:38
Сохранить веб-страницу (VBA) + PQ обработка таблицы
 
В новых операционных системах на работу MSXML2.XMLHTTP версии 6.0 могут влиять настройки безопасности браузера (см. панель управления).
Поэтому:
1) Можно попытаться в Панель управления - Свойства браузера – Безопасность – Надежные сайты – Сайты - добавить этот сайт
2) Использовать через VBE-Tools-Reference MSXML2.XMLHTTP версии 3.0 , вроде, это хорошо работает и в Excel 365. Может, и п.1 тогда не понадобится
3) В коде в начале чистить кэш браузера, чтобы данные читались с сайта, а не из локального кэша. Если поможет, то лучше потом поставить очистку кэша только этого сайта (быстрее, нет перерисовки экрана)

Приложил тестовый вариант с п.п. 2 и 3
Проверьте все варианты, вдруг, заработает.
Повторю еще раз, что у меня и без этих пунктов всё работает нормально в Win10, Excel 2010 (x32) и в Excel 2021 (x64)

Изменено: ZVI - 06.06.2025 13:47:32
Сохранить веб-страницу (VBA) + PQ обработка таблицы
 
Цитата
написал:
i и j = true
Они же Long.  Не так это делается.
Нужна точка останова после "j =" и тогда ?j
Или пошагово по F8.
Поищите как отлаживать код VBA
Сохранить веб-страницу (VBA) + PQ обработка таблицы
 
Цитата
написал:
в excel 2021 windows 11 вообще без вариантов
Добрый день, Алексей!
У меня Win10 x64. Если в Win11 не пропускает, то, возможно, версия MSXML2 другая - можно подключить разные по reference и посмотреть.
Или заголовки почему-то нужны, или еще что,..
Сохранить веб-страницу (VBA) + PQ обработка таблицы
 
Цитата
написал:
если правильно сделал
На какую строку ругается отладчик?
Чему равны i и j?
Сохранить веб-страницу (VBA) + PQ обработка таблицы
 
Цитата
написал:
написано что нет таблицы
Скопируйте без изменения код из #22 и запустите его.
Если не работает, то нужна отладка: остановить код, посмотреть, что там в s - есть ли "<table"
Тестировал в Excel  2010 (x32) и 2021 (x64) -работает.
Сохранить веб-страницу (VBA) + PQ обработка таблицы
 
Цитата
написал:
Ошибка вышла - ни разу такую не видел
Там написано что макросы книги отключены, нужно их включить.
Добавьте путь к папке с книгой в надежные расположения:
Файл - Параметры - Центр управления безопасностью - Параметры центра управления безопасностью - Надежные расположения - Добавить новое расположение - Ok -Ok - Ok
И перезагрузить книгу.
Изменено: ZVI - 06.06.2025 07:56:24
Сохранить веб-страницу (VBA) + PQ обработка таблицы
 
Чтобы не зависеть от версий:
Код
Sub UpdateTable()
  Const FILE = "Table.htm"
  Const URL = "https://www.e-disclosure.ru/portal/files.aspx?id=1976&type=3"
  Dim i As Long, j As Long, s As String, sFile As String
  With CreateObject("MSXML2.XMLHTTP")
    .Open "GET", URL, False, "", ""
    .Send
    If .Status <> 200 Then
      MsgBox "Site Error: #" & .Status & vbLf & .StatusText, vbExclamation, "Exit"
      Exit Sub
    End If
    s = .ResponseText
  End With
  i = InStr(s, "<table")
  j = InStr(i + 1, s, "</table>")
  If j = 0 Then
    MsgBox "Site Table not found!", vbExclamation, "Exit"
    Exit Sub
  End If
  s = "<html><body>" & vbLf & Mid(s, i, j - i + Len("</table>")) & vbLf & "</body></html>"
  sFile = ThisWorkbook.Path & "\" & FILE
  On Error Resume Next
  With CreateObject("ADODB.Stream")
    .Type = 2
    .Mode = 3
    .Charset = "UTF-8"
    .Open
    .WriteText s
    .SaveToFile sFile, 2
    .Close
  End With
  If Err Then MsgBox Err.Description, vbExclamation, "Error #" & Err
End Sub
Файл Table.htm будет создан/обновлен там же, где и книга с этим кодом
Table.htm можно загрузить в PQ или в Excel непосредственно через Файл-Открыть...
Изменено: ZVI - 06.06.2025 04:35:02
Странное поведение Like (VBA)
 
Цитата
написал:
... не на то время тратите!
Приветствую!
Та мы в курилке на что хотим, на что и тратим, и никто нам не указ  :D
Почем гамбургеры для народа?  ;)  
Изменено: ZVI - 16.05.2025 14:11:36
Странное поведение Like (VBA)
 
Цитата
написал:
наверное пообщаться,
Поговорить - да, это нормально и приятно.
Вообще, к Like претензии вижу впервые.
Работает в соответствии с описанием и очень быстро.
А все вольности этого оператора при некорректно заданных шаблонах ему прощаю – неизвестно какими мы сами будем в пограничном состоянии  :D  
Создание резервной копии при закрытии файла
 
Цитата
написал:
даже не выводит сообщение о том, что папки не существует
Добрый день.
GetAttr("H:\") And 0 всегда выдаст 0, т.к. это бинарная операция.
Используйте тогда уже GetAttr("H:\") And vbDirectory
Странное поведение Like (VBA)
 
Добрый день, Виталий!
Не понятна цель вопроса об особенностях реализации в MS исходного кода оператора Like, которого никто здесь не видел и не увидит. Разве что, интересны наши фантазии на этот счет  :)
Есть правила составления шаблонов для оператора Like, по ним нужно и писать код.
При несоблюдении этих правил VBA имеет право поступить так, как сработает внутренний код, вернув то, что получится: True/False/Error
В шаблоне "[1-4-6]"  повторный символ "-" не на месте, т.к. это не символ диапазона (синтаксис нарушен) и он ни в начале списка, ни в конце, где ему положено быть по правилам.
VBA при этом на ошибку не наткнулся, а посчитал шаблон "[1-4-6]" как:
символ в диапазоне "[1-4]"  ИЛИ символ "-"  ИЛИ символ "6"
И в простом шаблоне "[F-F]" VBA, так и быть, посчитал некорректно заданный диапазон отсортированным по возрастанию.
Но в более сложном fuzzy-шаблоне "*[F-F]" тот же диапазон "[F-F]", чтобы не создавать неопределенности, мог посчитатьcя некорректным, например, возможно отсортированным по убыванию, это означает ошибку. Или код в таком случае мог использовать "жадный" поиск и тупо откусить первый символ в шаблоне (поэтому и True  в строке 3), или вообще что угодно.

Пофантазировал, и что теперь?  ;)  
Изменено: ZVI - 15.05.2025 09:27:44
Как скопировать определенный текст через VBA в Word
 
Цитата
БМВ написал:
Реально никогда не пользовался
Аналогично...
Вот это новость, благодарю!
Как скопировать определенный текст через VBA в Word
 
Цитата
ZVI написал: ... Михаил, понятно. Посмотрю, но позже
Михаил, я посмотрел.
Внешняя программа, которая вносит "ЗАКЛЮЧЕНИЕ", похоже, добавляет перед этим словом XML-атрибут  "<w:caps/>" (слово:заглавными), что и приводит к CAPS-отображение слова. Возможно, данный атрибут попал туда и по какой-то иной природе. В document.xml таких атрибута 2. Если удалить 2-й или оба, то все приходит в норму.

В кривом документе если (например, вручную) установить в параметрах поиска 'не учитывать регистр', то поиск выделит "ЗАКЛЮЧЕНИЕ", но в результате поиска отобразится "Заключение":



Можно посмотреть даже проще: вручную выделить слово "ЗАКЛЮЧЕНИЕ" и правым кликом выбрать "Ссылка" -  в верхнем поле отобразится текст "Заключение":

Изменено: ZVI - 27.04.2025 03:04:32
Как скопировать определенный текст через VBA в Word
 
Михаил, понятно. Посмотрю, но позже, сейчас убегаю от компа )
Как скопировать определенный текст через VBA в Word
 
Цитата
БМВ написал:
На примере по маске не ищется слово ЗАКЛЮЧЕНИЕ. Стоит его ввести в ручную и все корректно отрабатывает.
Михаил, я не понял и не стал там вникать в цепочку обсуждения:
- в каком конкретно примере?
- куда и что (было-стало) конкретно ввести в ручную?
- откуда и как получен XML?
- "Маску если заменить на <Заключение>, все работает" - с острыми скобками <> или без?
Там упоминалась внешняя программа, она вполне могла влезть в XML.

Был бы конкретный пример, воспроизводящий проблему без всего лишнего, то было бы понятнее
Изменено: ZVI - 26.04.2025 19:39:19
Как скопировать определенный текст через VBA в Word
 
Цитата
БМВ написал: ... Ну как то не по вордовски это :-)
Привет, Михаил!
Специально так сделал, потому что это значительно быстрее.
По Word-овски - медленная возня с word-объектами диапазонов, учитывая еще и атрибуты/форматы для поиска.
Цитата
БМВ написал: ... нет ли идей по поводу  этого
Word-идеи отбросил из-за того, что в якобы пустых параграфах может быть один или несколько пробелов.
Учитывать их без нормальных регулярок - это, наверное, только перебор параграфов...
Хотя, конечно, можно быстро распарсить XML, но это как-то не по VBA-ному ;)
Изменено: ZVI - 26.04.2025 19:19:28
Как скопировать определенный текст через VBA в Word
 
Правильно сформулированная задача = полрешения:
В активном Word-документе требуется найти ключевые слова 1 и 2.
И выделить+скопировать диапазон после параграфа со словом1 и до параграфа со словом 2,
исключая в конце пустые параграфы и параграфы, содержащие только пробелы
.
Изменено: ZVI - 26.04.2025 22:14:52
Сохранение вложений из нескольких писем (Outlook), batch attachments saving
 
Цитата
Alex_L написал:
ZVI , спасибо большое!
Пожалуйста! Хорошо, что подтвердили.
Как сделать проигрывание gif на листе эксель бесконечным
 
Цитата
visors16 написал:
ZVI , Спасибо
Рад был помочь, удачи Вам!
Как сделать проигрывание gif на листе эксель бесконечным
 
Цитата
visors16 написал:
Как сделать так, чтобы этот макрос сам запускался, при открытии книги ?
Приложил такой вариант.
Кнопку оставил, если не нужна, то просто удалите её.
Как сделать проигрывание gif на листе эксель бесконечным
 
Приложил более безопасный вариант с запуском/остановом таймера по кнопке и отображением его статуса в тексте кнопки и в окне Immediate.
Правильным и безопасным было бы вообще поместить таймер с кодом из #21 в отдельную надстройку.
Как сделать проигрывание gif на листе эксель бесконечным
 
Цитата
visors16 написал:
что-то на листе происходит - и гиф теперь проигрывается бесконечно
Уже лучше  :)
Только непонятно, что Вы делаете.
Нельзя что-то делать с кодом, пока работает API-таймер, сначала таймер нужно остановить по StopTimer.
Давайте так: сначала запустите МОЙ пример из #21, при этом НИЧЕГО не меняя в коде, так работает?
Изменено: ZVI - 14.04.2025 22:55:22
Как сделать проигрывание gif на листе эксель бесконечным
 
Цитата
visors16 написал:
шевелить курсор мыши
Код шевелит позицию мышки на 1 пиксель.
Может, в Вашем случае нужно несколько раз или на большее количество пикселей менять.
Видео мне не нужно, т.к. видел у себя, но код помог.
Вы повторно загрузили и проверили мой пример?
Про обновление прочитали сообщение #26 и попробовали обновить операционную систему?
Изменено: ZVI - 14.04.2025 16:30:17
Как сделать проигрывание gif на листе эксель бесконечным
 
Накатил плановое обновление операционной системы (.Net-ы), теперь анимированные gif-ы крутятся в Excel бесконечно сами по себе без VBA-кода.
Так что покопайте в эту сторону
Как сделать проигрывание gif на листе эксель бесконечным
 
Исправил в коде ActiveSheet на ActiveWorkbook, обновил вложение в #21, проверьте еще раз
Изменено: ZVI - 14.04.2025 14:43:54
Как сделать проигрывание gif на листе эксель бесконечным
 
Цитата
visors16 написал:
30 секунд проходит и gif останавливается
Странно  т.к. у меня тоже Excel 2021 (обновление 2503) и все работает бесконеечно после автозапуска StartTimer. Попробуйте вручную запустить  StartTimer.
Так как проблема не воспроизводится, то трудно что-то ещё посоветовать...
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 154 След.
Наверх