Private Sub Worksheet_Change объединяет два кода - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь объединить эти два кода, первый - изменить имя моего рабочего листа, когда я изменяю значение ячейки m3, а второй - блокировать ячейки после изменения ячеек. Я новичок в VBA, поэтому не знаю, как их объединить.

КОД 1

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$M$3" Then RenameSheet
End Sub

КОД 2

Private Sub Worksheet_Change(ByVal Target As Range)
Dim xRg As Range

   On Error Resume Next
    Set xRg = Intersect(Range("F6"), Target)
    If xRg Is Nothing Then Exit Sub

     Target.Worksheet.Unprotect Password:="1234"

     xRg.MergeArea.Locked = True

     Target.Worksheet.Protect Password:="1234"

End Sub

Также код подименования:

Sub RenameSheet()

    Dim rs As Worksheet
    For Each rs In Sheets
    If rs.Name <> "MENU" And rs.Name <> "CAJA_CONTABILIDAD" Then
        rs.Name = "Vale " & rs.Range("M3")
    End If
    Next rs

    If Target.Address = "$M$3" Then RenameSheet
End Sub

1 Ответ

1 голос
/ 21 апреля 2020
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$M$3" Then
        RenameSheet
        Exit Sub
    End If

    Dim xRg As Range
    Set xRg = Intersect(Range("F6"), Target)
    On Error Resume Next
    If Not xRg Is Nothing Then
        Target.Worksheet.Unprotect Password:="1234"
        xRg.MergeArea.Locked = True
        Target.Worksheet.Protect Password:="1234"
    End If

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