Excel VBA - .hyperlink не может применяться к диапазону - PullRequest
0 голосов
/ 20 февраля 2019

Так что мне довольно трудно заставить это работать ...

AIM : Нажмите «UpdateSheets», «ServerTemplate» скопируется, а имя в столбце E будет использовано какПосле того как имя листа выполнено, сделайте гиперссылку на ячейку в столбце E на соответствующий лист.

ВЫПУСК : гиперссылка ссылается только на лист с именем в последней заполненной ячейке в столбце E для всех ячеек в столбце E;также изменив значение E10 на то же значение, что и у последней заполненной ячейки в столбце E

ВОПРОС : Может кто-нибудь помочь и сообщить мне, где я иду не так?

Private Sub UpdateSheets_Click()

Dim wsMASTER As Worksheet, wsTEMP As Worksheet, wsGENERAL As Worksheet
Dim wasVISIBLE As Boolean
Dim shNAMES As Range, Nm As Range

With ThisWorkbook

Set wsTEMP = .Sheets("ServerTemplate")
Set wsMASTER = .Sheets("Main")
Set shNAMES = wsMASTER.Range("E10:E" & Rows.Count).SpecialCells(xlConstants)

    wasVISIBLE = (wsTEMP.Visible = xlSheetVisible)
    If Not wasVISIBLE Then wsTEMP.Visible = xlSheetVisible

Application.ScreenUpdating = False
For Each Nm In shNAMES
    If Not Evaluate("ISREF('" & CStr(Nm.Text) & "'!A1)") Then
        wsTEMP.Copy After:=.Sheets(.Sheets.Count)
        ActiveSheet.Name = CStr(Nm.Text)
    End If
    wsMASTER.Hyperlinks.Add anchor:=shNAMES, Address:="", _
    SubAddress:=CStr(Nm.Text) & "!A1", _
    TextToDisplay:=Nm.Text
Next Nm
wsMASTER.Activate
    If wasVISIBLE Then wsTEMP.Visible = xlSheetHidden Else: If Not wasVISIBLE Then wsTEMP.Visible = xlSheetHidden
    Application.ScreenUpdating = True
For Each wsGENERAL In ThisWorkbook.Worksheets
    If wsGENERAL.Name = "ServerTemplate(1)" Then
        wsGENERAL.Delete
    End If
Next wsGENERAL
End With
MsgBox "All servers have been added."
ThisWorkbook.Save
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...