2016-06-15 5 views
1

Я пытаюсь вставить гиперссылки на столбец А, который имеет данные. например, A1 является заголовком; A2 будет 12345 с гиперссылкой http://123.1.1.1/?id=12345Вставить гиперссылку в столбец с данными

В настоящее время я запускаю макрос на листе, который содержит около 11000 строк. это было около часа, оно все еще работает ...

Кроме того, пытаясь увидеть, может ли этот единственный макрос работать на всех листах.

Ниже мой макрос

Sub AddUrlSheet1() 
With Worksheets(1) 

Set R = ActiveSheet.Range("a2", ActiveSheet.Range("a2").End(xlDown)) 
R.Select 

For Each R In Selection.Cells 

.Hyperlinks.Add Anchor:=R, _ 
Address="http://123.1.1.1/" & R.Value 

Next R 
End With 
End Sub 
+0

Вы должны установить ScreenUpdating для False перед запуском этого, что ускорит его. Невозможно сказать, сколько времени это займет! –

+1

Возможно, вам стоит взглянуть на функцию рабочего листа HYPERLINK. – jkpieterse

ответ

0

Попробуй это:

Sub AddUrlSheet1() 
    Application.ScreenUpdating = False 
    Application.Calculation = xlCalculationManual 
    ' 
    Dim LastUsedRow As Long 
    Dim r As Range, c As Range 
    With ActiveSheet 
     LastUsedRow = .Columns("A").Cells.Find("*", SearchOrder:=xlByRows, LookIn:=xlFormulas, SearchDirection:=xlPrevious).Row 
     Set r = .Range(.Cells(2, 1), .Cells(LastUsedRow, 1)) 
    End With 
    ' 
    For Each c In r 
     c.Hyperlinks.Add Anchor:=c, Address:="http://123.1.1.1/" & c.Value 
    Next c 
    Application.Calculation = xlCalculationAutomatic 
    Application.ScreenUpdating = True 
End Sub 

Это добавляет гиперссылка на все клетки, которые в настоящее время имеют значение в них в столбце A.

0

Вместо цикла клетки с помощью ячейку, используйте Hyperlink() с Formula, чтобы это сделать. Если R значения в столбце А, это будет заполнить гиперссылка в столбце B.

Sub t() 
Dim rng As Range 
' Note: Update the `10` to match your lastRow 
Set rng = Range("B2:B" & ActiveSheet.Range("a2").End(xlDown).Row) 

rng.FormulaR1C1 = "=HYPERLINK(""http://123.1.1.1/""&RC[-1],""Link"")" 

End Sub 

Если вы должны перебрать уже существующие данные, @ ответ Криса выглядит довольно хорошо.

+0

Спасибо, поэтому я не могу использовать тот же столбец, который нельзя использовать повторно? – formosanmountainbear

+0

@ yu2bike - Что значит? Я просто имел в виду, что если столбец А имеет такие значения, как «1.2.3», «12.203.2» и т. Д., То этот макрос поместит гиперссылку в столбец B. Макрос вашего OP проходит через столбец A и помещает ссылка на ячейку, AFAIK. – BruceWayne

+0

Я хотел спросить, не могу ли я использовать столбец B другой столбец для гиперссылки, тогда мне придется использовать мой первоначальный маршрут? (циклическая ячейка по ячейке?) – formosanmountainbear

Смежные вопросы