Кнопка «Удалить» добавлена ​​в новую строку и удалить строку / переместить лист - PullRequest
0 голосов
/ 26 февраля 2019

Попытка сделать что-то, чего я раньше не пробовал, и не знаю, с чего начать.

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 .

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