Excel VBA создает гиперссылку на другой лист

Вопрос:Простой вопрос, надеюсь, но исследования только подняли сообщения форума, которые дают стек кода без объяснения его. Первый лист моей книги похож на страницу содержимого. Каждая ячейка в столбце A содержит строку IP-адреса. Для каждого IP-адреса существует отдельный лист, который называется с IP-адресом. Я хочу повернуть ячейки в столбце A страницы содержимого в гиперссылки на их

Вопрос:

Простой вопрос, надеюсь, но исследования только подняли сообщения форума, которые дают стек кода без объяснения его.

Первый лист моей книги похож на страницу содержимого. Каждая ячейка в столбце A содержит строку IP-адреса. Для каждого IP-адреса существует отдельный лист, который называется с IP-адресом. Я хочу повернуть ячейки в столбце A страницы содержимого в гиперссылки на их соответствующие листы (ячейка A1 листа адресата).

Мне нужна только строка VBA, которая делает гиперссылку; Я могу вычислить цикл и т.д. Помните, что имя страницы, к которой нужно привязать, точно такое же, как значение ячейки, которая станет ссылкой.

Лучший ответ:

Я записал макрос, создающий гиперссылку. Это привело.

ActiveCell.FormulaR1C1 = «=HYPERLINK(«»[Workbook.xlsx]Sheet1!A1″»,»»CLICK HERE»»)» Ответ №1

Это код, который я использую для создания индексной страницы.

Sub CreateIndexSheet() Dim wSheet As Worksheet ActiveWorkbook.Sheets.Add(Before:=Worksheets(1)).Name = «Contents» ‘Call whatever you like Range(«A1″).Select Application.ScreenUpdating = False ‘Prevents seeing all the flashing as it updates the sheet For Each wSheet In Worksheets ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=»», SubAddress:=wSheet.Name & «!A1», TextToDisplay:=wSheet.Name ActiveCell.Offset(1, 0).Select ‘Moves down a row Next Range(«A1»).EntireColumn.AutoFit Range(«A1»).EntireRow.Delete ‘Remove content sheet from content list Application.ScreenUpdating = True End Sub

Надеюсь, что это поможет кому-то

Ответ №2

Что-то вроде следующего будет проходить через столбец A в Листе управления и превращать значения в ячейки в гиперссылки. Не то, что я должен был сделать раньше, поэтому, пожалуйста, извините ошибки:

Sub CreateHyperlinks() Dim mySheet As String Dim myRange As Excel.Range Dim cell As Excel.Range Set myRange = Excel.ThisWorkbook.Sheets(«Control»).Range(«A1:A5») ‘<<adjust range to suit For Each cell In myRange Excel.ThisWorkbook.Sheets(«Control»).Hyperlinks.Add Anchor:=cell, Address:=»», SubAddress:=cell.Value & «!A1» ‘<<from recorded macro Next cell End Sub Ответ №3

“!” знак является ключевым элементом. Если у вас есть объект ячейки (например, “mycell” в следующем примере кода) и связать ячейку с этим объектом, вы должны обратить внимание! элемент.

Вы должны сделать что-то вроде этого:

.Cells(i, 2).Hyperlinks.Add Anchor:=.Range(Cells(i, 2).Address), Address:=»», _ SubAddress:= «‘» & ws.Name & «‘» & _ «!» & mycell.Address Ответ №4

Если вам нужно гиперссылку Sheet1 на все или соответствующие листы, используйте простой код vba. Если вы хотите создать радиокнопку, назначьте этот макрос этой кнопке с “Домашняя страница”.

Вот он:

Sub HomePage() ‘ ‘ HomePage Macro ‘ ‘ This is common code to go to sheet 1 if do not change name for Sheet1 ‘Sheets(«Sheet1»).Select ‘ OR ‘ You can write you sheet name here in case if its name changes Sheets(«Monthly Reports Home»).Select Range(«A1»).Select End Sub Ответ №5

Этот макрос добавляет гиперссылку на рабочий лист с тем же именем, я также изменяю диапазон, который будет более гибким, просто измените первую ячейку в коде. Работает как шарм

Sub hyper() Dim cl As Range Dim nS As String Set MyRange = Sheets(«Sheet1»).Range(«B16″) Set MyRange = Range(MyRange, MyRange.End(xlDown)) For Each cl In MyRange nS = cl.Value cl.Hyperlinks.Add Anchor:=cl, Address:=»», SubAddress:=»‘» & nS & «‘» & «!B16», TextToDisplay:=nS Next End Sub

Оцените статью
Добавить комментарий