Можно ли создать макрос, который вытягивает текст в выбранной ячейке, добавляет его в путь к файлу, а затем делает ячейку гиперссылкой на указанный файл? - PullRequest
0 голосов
/ 03 апреля 2019

Я совершенно новичок в использовании VBA в Excel, кроме простых записанных макросов.В настоящее время я пытаюсь создать макрос, чтобы автоматически связать ячейку с соответствующим файлом на основе его содержимого, например: ячейка содержит номер заказа «F003910», а форма заказа находится в «L: \ Docs \ Expenditure».\ Orders Orders \ F0039XX '.

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

Это для Excel 365. Я попытался записать макрос, скопировать и вставить как часть этого, но он просто сохраняет текст с момента создания макроса, а не извлекает его из выбранной ячейки..

Я понимаю, что это может быть даже невозможно, но любой совет будет высоко оценен.

Ответы [ 2 ]

3 голосов
/ 03 апреля 2019

Если вы добавите, например, «F003910» в ячейку B4, то введенная вручную формула под вашей ячейкой может выглядеть так:

=HYPERLINK("L:\Docs\Expenditure\Purchase Orders\" & LEFT(B4,5) & "XX";"link")

И результат будет выглядеть так (в немецком Excel): Screenshot2

Пример в VBA:

Private Sub TestMyHyperlink
    Dim ws as Worksheet
    Dim myCell as Range

    Set ws = ActiveSheet
    For each myCell in ws.Range("B4:B100")
        myCell.FormulaR1C1 = _
        "=HYPERLINK(""L:\Docs\Expenditure\Purchase Orders\"" & _
        LEFT(RC[-1],5) & ""XX"", _
        ""link"")"
    Next myCell
End Sub
0 голосов
/ 03 апреля 2019

Приведенный ниже код получает значение из Sheet1.range ("A1"), создает путь и импортирует гиперссылку в Sheet1.range ("B1"). В обоих методах не забудьте изменить расширение файла.

Код VBA:

Option Explicit

Sub test()

    Dim cValue As String, path As String

    With ThisWorkbook.Worksheets("Sheet1")

        cValue = .Range("A1").Value
        path = "L:\Docs\Expenditure\Purchase Orders\F0039XX\" & cValue & ".xls" '

        .Hyperlinks.Add Anchor:=.Range("B1"), Address:=path, TextToDisplay:=path

    End With

End Sub

Формула Excel:

=HYPERLINK("L:\Docs\Expenditure\Purchase Orders\F0039XX\" & A1 & ".xls",A1 & " Location")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...