Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Как объединить два значения в форме в гиперссылку? - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как объединить два значения в форме в гиперссылку? (Макросы/Sub)
Как объединить два значения в форме в гиперссылку?
marusa122 Дата: Воскресенье, 05.03.2023, 15:56 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 20% ±

Здравствуйте!
Есть пользовательская форма. В прикрепленном примере - Лист2. Нужно сделать так, чтобы в поле Ссылка нужно было вводить только ссылку, но в таблицу она добавлялась уже как гиперссылка с заданным именем. Например, если добавляем Клиента4 (TextBox2) и его ссылку www.example.com (TextBox3), в столбце Ссылка должна появиться гиперссылка с адресом www.example.com и именем "Клиент4 - рабочий сайт". Часть имени " - рабочий сайт" должна добавляться автоматически, она постоянная для всех клиентов. Я знаю, как это делать вручную в ячейках формулой ГИПЕРССЫЛКА или через ПКМ - "Ссылка". Но как сделать так, чтобы форма автоматически создавала такие гиперссылки?..

Пробовала добавить в код формы перед "End if" это - выбивает ошибку.
[vba]
Код
With Worksheets
    .Hyperlinks.Add Anchor:=.Range("C:C"), _
    Address:=TextBox3.Value, _
    TextToDisplay:="TextBox2.Value - рабочий сайт"
End With
[/vba]
К сообщению приложен файл: kopija_finalnyj_shablon.xlsm (194.6 Kb)
 
Ответить
СообщениеЗдравствуйте!
Есть пользовательская форма. В прикрепленном примере - Лист2. Нужно сделать так, чтобы в поле Ссылка нужно было вводить только ссылку, но в таблицу она добавлялась уже как гиперссылка с заданным именем. Например, если добавляем Клиента4 (TextBox2) и его ссылку www.example.com (TextBox3), в столбце Ссылка должна появиться гиперссылка с адресом www.example.com и именем "Клиент4 - рабочий сайт". Часть имени " - рабочий сайт" должна добавляться автоматически, она постоянная для всех клиентов. Я знаю, как это делать вручную в ячейках формулой ГИПЕРССЫЛКА или через ПКМ - "Ссылка". Но как сделать так, чтобы форма автоматически создавала такие гиперссылки?..

Пробовала добавить в код формы перед "End if" это - выбивает ошибку.
[vba]
Код
With Worksheets
    .Hyperlinks.Add Anchor:=.Range("C:C"), _
    Address:=TextBox3.Value, _
    TextToDisplay:="TextBox2.Value - рабочий сайт"
End With
[/vba]

Автор - marusa122
Дата добавления - 05.03.2023 в 15:56
MikeVol Дата: Понедельник, 06.03.2023, 09:54 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 315
Репутация: 61 ±
Замечаний: 0% ±

Excel LTSC 2021 EN
marusa122,
[vba]
Код

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim cell As Range, rB As Range, rF As Range
    Application.ScreenUpdating = False
    Set rB = Intersect(Лист2.Range("B:B"), Target)
    Set rF = Intersect(Лист2.Range("F:F"), Target)

    If Not rB Is Nothing Then
        Application.EnableEvents = False

        For Each cell In rB.Cells

            If Not IsEmpty(cell.Value) Then
                Sheets("Лист2").Hyperlinks.Add anchor:=cell.Offset(0, 4), Address:="http://" & cell.Offset(0, 1).Value, TextToDisplay:=cell.Offset(0, 0).Value
            End If

        Next cell

        Application.EnableEvents = True
    End If

    If Not rF Is Nothing Then
        Application.EnableEvents = False

        For Each cell In rF.Cells

            If Not IsEmpty(cell.Value) Then
                Sheets("Лист2").Hyperlinks.Add anchor:=cell.Offset(0, 2), Address:="http://" & cell.Offset(0, -3).Value, TextToDisplay:=cell.Offset(0, 0).Value
            End If

        Next cell

        Application.EnableEvents = True
    End If

    Application.ScreenUpdating = True
End Sub
[/vba]
Тот-же ответ что и на соседнем форуме.


Ученик.
 
Ответить
Сообщениеmarusa122,
[vba]
Код

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim cell As Range, rB As Range, rF As Range
    Application.ScreenUpdating = False
    Set rB = Intersect(Лист2.Range("B:B"), Target)
    Set rF = Intersect(Лист2.Range("F:F"), Target)

    If Not rB Is Nothing Then
        Application.EnableEvents = False

        For Each cell In rB.Cells

            If Not IsEmpty(cell.Value) Then
                Sheets("Лист2").Hyperlinks.Add anchor:=cell.Offset(0, 4), Address:="http://" & cell.Offset(0, 1).Value, TextToDisplay:=cell.Offset(0, 0).Value
            End If

        Next cell

        Application.EnableEvents = True
    End If

    If Not rF Is Nothing Then
        Application.EnableEvents = False

        For Each cell In rF.Cells

            If Not IsEmpty(cell.Value) Then
                Sheets("Лист2").Hyperlinks.Add anchor:=cell.Offset(0, 2), Address:="http://" & cell.Offset(0, -3).Value, TextToDisplay:=cell.Offset(0, 0).Value
            End If

        Next cell

        Application.EnableEvents = True
    End If

    Application.ScreenUpdating = True
End Sub
[/vba]
Тот-же ответ что и на соседнем форуме.

Автор - MikeVol
Дата добавления - 06.03.2023 в 09:54
marusa122 Дата: Понедельник, 06.03.2023, 13:24 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 20% ±

MikeVol, спасибо. Есть вопросы по нему - написала на соседнем форуме
 
Ответить
СообщениеMikeVol, спасибо. Есть вопросы по нему - написала на соседнем форуме

Автор - marusa122
Дата добавления - 06.03.2023 в 13:24
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как объединить два значения в форме в гиперссылку? (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!