Такая задача. Есть прайст лист, в котором много тысяч строчек. Нужно сделать оглавление для него на основе заголовков категории товаров, которые выставлены в столбике С (прикрепил файл с таблицей, там всё видно).
Я решил делать так. Я собрал все заголовки категорий из столбика 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 я вообще не шарю, в коде наделал ошибок.
Пожалуйста, помогите мне исправить код, чтобы всё работало
Sub uuu()
Dim i&, ii&
Dim cont As Worksheet, price As Worksheet
'----------------------------------------------
Set cont = Sheets("Содержание")
Set price = Sheets("Прайс")
For i = 1 To cont.Cells(Rows.Count, 1).End(xlUp).Row
If cont.Cells(i, 1) <> "" Then
For ii = 1 To price.Cells(Rows.Count, 2).End(xlUp).Row
If price.Cells(ii, 2) = cont.Cells(i, 1) Then
cont.Hyperlinks.Add Anchor:=cont.Cells(i, 1), Address:="", SubAddress:=price.Name & "!" & price.Cells(ii, 2).Address
End If
Next
End If
Next
Beep
MsgBox "Йо-хо-хо!"
End Sub
Тема размещена на 4 форумах (может, больше).
http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=77523&TITLE_SEO=77523-kak-sdelat-oglavlenie-dlya-prays-lista
wild_pig, спасибо тебе за ответ. Это очень большая помощь!
Уже писал на другом форуме, что очень хотел получить ответ, поэтому написал на много форумах. Проистите
Размещаете тему на нескольких форумах - информируйте об этом ссылками.
Хорошо! Буду теперь иметь ввиду