Функция Excel VBA для возврата рабочей ссылки на документы - PullRequest
0 голосов
/ 28 сентября 2019

Я пытаюсь защитить электронную таблицу от ошибок на работе.У нас были проблемы с тем, что люди копируют ссылки, а потом просто меняют номер RMA.Это будет работать в теории, если все ссылки имеют одинаковое расширение, но некоторые из них являются .xls, а некоторые - .xlsx.

Я сделал так, что когда ячейка в столбце RMA изменяется, смещение ячейки 53 справа от нее получает гиперссылку, сгенерированную открытой функцией GetCRRLink (), вставленной в нее.

Private Sub Worksheet_Change(ByVal ChangedCells As Range)
'Some code omitted here, RMA is defined
    If Not Intersect(CurrentCell, RMA) Is Nothing Then
        Set CurrentCell.Offset(0, 53).Formula = GetCRRLink(CurrentCell.Value)
    End If
'Some code omitted here
End Sub

'Meanwhile, in Module 1
Public Function GetCRRLink(RMA As String) As Hyperlink
    On Error Resume Next
    Dim TryLink As Hyperlink
    Set TryLink.TextToDisplay = "CRR Form"
    Set TryLink.Address = "redacted" & RMA & ".xls"
    TryLink.Follow
    If Err.Number = 0 Then
        GetCRRLink = TryLink
        Exit Function
    End If
    Err.Clear
    Set TryLink.Address = "redacted" & RMA & ".xlsx"
    TryLink.Follow
    If Err.Number = 0 Then
        GetCRRLink = TryLink
        Exit Function
    End If
    Set TryLink.TextToDisplay = "Error"
    GetCRRLink = TryLink
End Function

При попытке установить свойства TextToDisplay или Address в TryLink я получаю «Ошибка компиляции: неверное количество аргументов или неправильное присвоение свойства».

1 Ответ

0 голосов
/ 28 сентября 2019

TextToDisplay и Address являются строковыми свойствами.Так что просто удалите Set, который используется только для назначения объектов.Это должно сработать.

TryLink.TextToDisplay = "CRR Form"
TryLink.Address = "redacted" & RMA & ".xls"
...

Кстати, вам понадобится Set при назначении TryLink в качестве результата функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...