Попытка сделать что-то, чего я раньше не пробовал, и не знаю, с чего начать.
AIM : при добавлении новой строки и создании листа, как показано в коде ниже;Я хочу, чтобы кнопка DELETE добавлялась в каждую новую строку, когда она нажимается, запрашивает подтверждение у пользователя, а затем удаляет эту строку и перемещает связанный лист в другую рабочую книгу (WorkBook_Archive.xlsm) с датой, включенной перед исходным листом.имя (дает уникальный идентификатор).
Private Sub NewServer_Click()
Dim shtName As String, ws As Worksheet
Dim wsMASTER As Worksheet, wsTEMP As Worksheet, wsGENERAL As Worksheet
Dim shNAMES As Range, nmANCHOR As Range
Dim eRow As Long, wasVISIBLE As Boolean
Dim shANCHOR As Range
With ThisWorkbook
Set wsMASTER = .Sheets("Main")
Set wsTEMP = .Sheets("ServerTemplate")
Set nmANCHOR = wsMASTER.Range("E10:E" & Rows.Count).End(xlUp).Offset(1)
wasVISIBLE = (wsTEMP.Visible = xlSheetVisible)
If Not wasVISIBLE Then wsTEMP.Visible = xlSheetVisible
With Application
.ScreenUpdating = False
.DisplayAlerts = False
.EnableEvents = False
End With
wsMASTER.Unprotect Password:="J786djh$"
Do
wsMASTER.Activate
shtName = Application.InputBox("Please Enter Name For New Server" & vbCrLf & vbCrLf & _
"Click Cancel To Quit", "Define Sheet Name", Type:=2)
If shtName = "False" Then Exit Sub
Set ws = Nothing
On Error Resume Next
Set ws = Sheets(shtName)
On Error GoTo 0
If ws Is Nothing Then Exit Do
MsgBox "Please try again, ensuring no spaces are used in the new server name.", vbExclamation, "Name Exists"
Loop
eRow = wsMASTER.Range("E" & Rows.Count).End(xlUp).Row + 1
wsMASTER.Cells(eRow, "E").Value = shtName
wsTEMP.Copy After:=Worksheets(Sheets.Count)
ActiveSheet.Name = shtName
Set shANCHOR = wsMASTER.Range("E" & Rows.Count).End(xlUp)
wsMASTER.Hyperlinks.Add anchor:=shANCHOR, Address:="", SubAddress:="'" & shtName & "'!A1", TextToDisplay:=shtName
For Each wsGENERAL In ThisWorkbook.Worksheets
If wsGENERAL.Name = "ServerTemplate(1)" Then
wsGENERAL.Delete
End If
Next wsGENERAL
wsMASTER.Activate
With Application
.ScreenUpdating = True
.DisplayAlerts = True
.EnableEvents = True
End With
wsMASTER.Protect Password:="J786djh$"
End With
If wasVISIBLE Then wsTEMP.Visible = xlSheetHidden Else: If Not wasVISIBLE Then wsTEMP.Visible = xlSheetHidden
End Sub
Я предполагаю, что положение кнопки имеет значение, для целей здесь кнопка будет в Столбец F , начинающийся с строка 10 .