Так что мне довольно трудно заставить это работать ...
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