Профессиональные приемы работы в Microsoft Excel

Пожалуйста, войдите или зарегистрируйтесь.


Расширенный поиск  

Новости:

К первому сообщению темы должен быть прикреплен файл примера в формате xls*.
Приложив пример, Вы избавите себя и других от вопросов типа "А какой критерий?", "А куда выводить результат?", "А сколько строк?" и все тех же просьб выложить файл. Рисовать за Вас Ваши же таблички с заданиями, а затем и решение к ним, никто желанием не горит. Да и, как показывает практика, в большинстве случаев без файла решения не найти.

Автор Тема: КАК сделать оглавление для прайс листа? ГДЕ ОШИБКА, Не получается составить код  (Прочитано 349 раз)

0 Пользователей и 1 Гость просматривают эту тему.

dredder_gun

  • Новичок
  • *
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 1

Такая задача. Есть прайст лист, в котором много тысяч строчек. Нужно сделать оглавление для него на основе заголовков категории товаров, которые выставлены в столбике С

Я решил делать так. Я собрал все заголовки категорий из столбика C, вынес их в отдельный лист и написал макрос, который вставляет ссылки на ячейки этих заголовков.

Макрос выполняет такой алгоритм:
1. Берёт текст каждой ячейки из листа "Содержание
2. Ищет этот текст в столбике С (в котором содержатся заголовки категорий) листа "Прайс лист"
3. В тех ячейках, в которых текст совпал, программа вставляет ссылку. Т.е. в ячейку из "Содержания" вставляется ссылка на подошедшую ячейку из прайс-листа

Вот такой код я состряпал:
Sub Find_n_PastLink()
 
    Dim rangContent As Range, rangPrice As Range, oWbk As Excel.Workbook, cell As Range, RecRow
 
    Set PriceSheet = ActiveSheet
    Set ContentSheet = oWbk.Worksheets.Item("Содержание")
    Set rangContent = ContentSheet.Range([A2], Range("A" & Rows.Count).End(xlUp))   
    Set rangPrice = PriceSheet.Range([C11], Range("C" & Rows.Count).End(xlUp))
 
    For CRow = 1 To 360 ' нужно пройтись циклом до конца столбца, не знаю как это сделать, поэтому поставил цифру побольше
       RecRow = rangContent.Cells(A, CRow)
       For PRow = 1 To 17000
          If rangContent.Cells(A, CRow).Text Like rangPrice.Cells(C, PRow).Text
 
          rangContent.Cells(A, CRow).Formula = _
           "=HYPERLINK(""[price 1.1.xls]""&ADDRESS(rangPrice.Cells(C, PRow)), rangPrice.Cells(C, PRow))"
 
          End If
 
       Next PRow
   Next CRow
 
End Sub


Проблема в том, что в VBA я вообще не шарю, в коде наделал ошибок.
Пожалуйста, помогите мне исправить код, чтобы всё работало

Как выглядит таблица: https://www.dropbox.com/s/bz5st1viepj26m5/price.xls.zip?dl=0
Записан
 



Темы без ответов

24.01.2020 14:03 На диаграмме Ганта несоответствие оси Y 1035
09.08.2019 14:09 Макрос для заполнения таблиц через форму 2779
18.07.2019 16:02 Рассылка почты из Excel при помощи почтовой программы TheBAT! 2402
09.07.2019 20:39 Кредит с уменьшением периода выплат 2496
28.05.2019 21:09 Сделать несколько скриптов для рабочей таблицы 3191
05.03.2019 17:00 Последовательный вывод таблиц Excel в один документ Word без шаблона 3107
05.03.2019 09:29 Нежелательные изменение размеров колонтитула при редактировании 2867
07.02.2019 01:36 Как удалить дубликаты из выпадающего связанного списка? 2984
20.01.2019 12:38 Все варианты частичного суммирования 3193
13.01.2019 12:24 Заполнение диапазона числами - в виде кластеров 2560





Яндекс цитирования msexcel.ru Яндекс.Метрика

Страница сгенерирована за 0.143 секунд. Запросов: 100.