Страницы: 1
RSS
КАК сделать оглавление для прайс листа?, код для оглавления прайс-листа
 
Такая задача. Есть прайст лист, в котором много тысяч строчек. Нужно сделать оглавление для него на основе заголовков категории товаров, которые выставлены в столбике С (прикрепил файл с таблицей, там всё видно).

Я решил делать так. Я собрал все заголовки категорий из столбика 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 я вообще не шарю, в коде наделал ошибок.
Пожалуйста, помогите мне исправить код, чтобы всё работало
Изменено: dredder_gun - 03.05.2016 00:07:18 (Решил прикрепить таблицу)
 
Цитата
из листа "Содержание
Нет такого листа!
 
Я знаю, это просто для примера я его так назвал. Даже если есть, скрипт не работает. Почему?
 
Однако - http://www.excelworld.ru/forum/10-23465-1#185596
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
Еще
http://www.excel-vba.ru/forum/index.php?topic=4519.new#new
 
Да уж, помощники, только носом тыкать умеют, нет что бы делом помочь.... У меня просто подобный вопрос, а ответ найти не могу((
 
Да уж, посетители... Хаять могут, а с правилами не знакомятся.
 
Может такой вариант Вам понравится
Изменено: Alemox - 07.08.2017 11:30:17
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
Страницы: 1
Наверх