Макросы VBA Excel — Страница 12

Поиск цен на Яндекс.Маркете

Результат поиска цен на ноутбуки на Яндекс.Маркете по PartNumber

Программа (3 модуля класса + примеры их использования) предназначена для поиска товаров в Яндекс.Маркете, с последующей загрузкой результатов поиска.

Исходными данными является название (или модель, PartNumber, и т.п.) товара.

 

На выходе код выдаёт информацию о результатах поиска - 10 (или более) позиций искомого товара,
где для каждой позиции указаны следующие характеристики:

  • цена (в рублях)
  • наименование продавца (название организации)
  • название товара у этого продавца
  • ссылка на страницу с описанием товара (цена, наличие, условия поставки, описание)

В настройках можно задавать регион для поиска (код региона, или название города \ области \ страны \ континента)

Возвращаемые позиции отсортированы по цене - в порядке её возрастания
(сначала идут самые дешевые товары)

Смотрите также расширенную версию программы поиска цен на Яндекс.Маркете,
с возможностью загрузки цен как по названиям товаров, так и по ссылкам на Яндекс.маркет

Во время запроса данных с сайта Яндекса отображается прогресс-бар.

Во вложении (пароль на проект VBA - 1 (единица)) - пример запроса цен на ноутбуки (исходными данными являются их парт-номера)

Макрос поиска видимых строк и заполненных ячеек на листе Excel

Если ваш макрос выдаёт ошибку при использовании метода SpecialCells - возможно, причина в установленной защите листа Excel.

Почему разработчики Microsoft отключили работу этой функции на защищённых листах - не совсем понятно, но мы попробуем обойти это ограничение.

 

Итак, нам надо получить все заполненные ячейки из некого диапазона листа Excel. 

Обычно для этого используется вызов метода SpecialCells - например,

msgbox Range("a2:d8").SpecialCells(xlCellTypeConstants).Address

Но на защищенном листе такой код выдаст ошибку 1004.

Чтобы избавиться от ошибки, мы используем функцию SpecialCells_TypeConstants - замену встроенному методу SpecialCells(xlCellTypeConstants)

 

Перенос двумерного массива на лист Excel

Функция Array2worksheet позволяет быстро сформировать лист на основании данных из двумерного массива

Sub ПримерИспользованияФункции_Array2worksheet()
    ' формируем двумерный массив, и заполняем его данными
    ReDim MyArr(1 To 20, 1 To 3)
    For i = 1 To 20: For j = 1 To 3: MyArr(i, j) = "Ячейка " & i & " * " & j: Next j: Next i
 
    ' создаём новую книгу, а в ней - лист для массива
    Dim sh As Worksheet: Set sh = Workbooks.Add(-4167).Worksheets(1): sh.Name = "Массив"
    ' заносим данные из массива MyArr на лист sh
    Array2worksheet sh, MyArr, Array("Столбец 1", "Столбец 2", "Столбец 3")
End Sub

Чтение текстового файла, и запись в файл в заданной кодировке

В этой статье представлены 3 функции для работы с текстовыми файлами:

  • Text_LoadFromFile - загружает текст из заданного файла