alpens написал: Не смог найти способ найти нужное поле в переменной QT1, чтобы обработать его значение.
Смог. Данные в QT1 появляются также после QT1.Refresh и поле Value2 содержит 1,311000011418Е+17, т.е. тоже обрезано. Тип этого поля Variant/Double. Как сделать, чтобы все поля были Variant/String. Есть ли настройка ?
Power Query исппользовать не смог: 1. не нашел примера его использования в макросах VBA; 2. если правильно понял Power Query предполагает знание структуры сайта. Импорт каждой табл. сайта производится на отдельный лист, что затрудняет обработку данных, тогда как QueryTabl позволяет импортировать все данные сайта на один лист.
Цитата
Anchoret написал: Если как-то обойти и выгружать в массив, то шанс победить есть
Вероятно, нужно выгружать не в массив, а в переменную типа QueryTable. Что-то вроде
Anchoret, Вы обрабатываете текстовую строку, выделяя нужный фрагмент и преобразовывая его. У меня данные считываются с сайта запросом QueryTable. После считывания в ячейке уже обрезанное значение 131100011418000000, а надо бы 0131100011418000094, как на сайте. Как этого избежать? Видимо нужно задать правильное сочетание свойств QueryTable. Но какое ?
Согласен, "текст - это наше все" Поэтому и вставил в свой код Selection.NumberFormat = "@" перед считыванием данных сайта. После считывания формат ячеек остается текстовым, однако происходит преобразование в экспоненту. что нужно еще ?
Нет, так применимо только в данном конкретном примере. На самом деле обрабатываются разные сайты и в URL далеко не всегда присутствует нужный номер (как в данном случае). Нужен прием, который обеспечивает адекватное представление полей сайта, содержащих длинный цифровой код.
Что нужно изменить в коде, чтобы данные считывались в исходным виде.
(Прошу прощения, не нашел как правильно вставить текст макроса. Привожу в "корявом виде")
Код
Sub Пример()
Workbooks("Пример.xlsm").Worksheets("Парсинг").Cells.Delete
With Workbooks("Пример.xlsm").Worksheets("Парсинг").Select
Range("A1:Z1000").Select
Selection.NumberFormat = "@"
End With
With Workbooks("Пример.xlsm").Worksheets("Парсинг").QueryTables.Add("URL;[URL=https://www.roseltorg.ru/past/procedure/0131100011418000094"]https://www.roseltorg.ru/past/procedure/0131100011418000094"[/URL];, Workbooks("Пример.xlsm").Worksheets("Парсинг").Range("A1"))
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebDisableDateRecognition = True
.Refresh BackgroundQuery:=False
End With
End Sub