В моем Excelsheet я использую таблицу с источником данных из sql-сервера.Один столбец содержит номер телефона, другой - почтовый адрес.Теперь я хочу создать гиперссылку, такую как tel:09999999
или mailto:test@test.com
, чтобы открыть стандартное windows-приложение для начала звонка или написания электронного письма.Формат ячейки общий.
К сожалению, гиперссылка выглядит как обычный текст, а не как гиперссылка.Я вижу формулу как =hyperlink("tel:09999999";"09999999")
.Когда я щелкаю в ячейке, нажимаю клавишу [F2]
и нажимаю return, затем в Excel меняю значение ячейки на «правильную» гиперссылку.
Вторая идея, которую я пытался написать макрос для всехэто клетки.но производительность не в порядке, у меня есть около 20000 строк с 5 столбцами, так что Excel работает около 1 минуты только для создания гиперссылки.Код выглядит так:
lastrow = ActiveSheet.Cells(Cells.Rows.Count, 1).End(xlUp).Row
For i2 = 4 To lastrow
'Phone1
Worksheets("Report").Cells(i2, 11).Select
If Len(Selection.Value) > 0 Then
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="tel:" + CStr(Selection), TextToDisplay:=CStr(Selection)
End If
'Phone2
Worksheets("Report").Cells(i2, 12).Select
If Len(Selection.Value) > 0 Then
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="tel:" + CStr(Selection), TextToDisplay:=CStr(Selection)
End If
'Phone3
Worksheets("Report").Cells(i2, 13).Select
If Len(Selection.Value) > 0 Then
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="tel:" + CStr(Selection), TextToDisplay:=CStr(Selection)
End If
'Mail1
Worksheets("Report").Cells(i2, 14).Select
If Len(Selection.Value) > 0 Then
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="mailto:" + CStr(Selection), TextToDisplay:=CStr(Selection)
End If
'Mail2
Worksheets("Report").Cells(i2, 15).Select
If Len(Selection.Value) > 0 Then
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="mailto:" + CStr(Selection), TextToDisplay:=CStr(Selection)
End If
Next i2