Как установить значение l oop в VBA worksheet_beforedoubleclick - PullRequest
0 голосов
/ 04 февраля 2020

Я делаю шаблон электронной таблицы, который требует использования для цифровой подписи определенных полей по мере их заполнения. Методом этого является двойной щелчок по указанному полю, VBA вводит имя пользователя своего приложения, и, если для этой подписи есть связанный блок даты (не все подписи должны быть датированы), он вставит его в соответствующее поле.

Поскольку этот шаблон будет реплицироваться с местоположением сигнатур, каждый раз слегка меняющимся, я не хотел, чтобы сигнатуры были жестко запрограммированы в VBA, а вместо этого возвращал их из набора значений на листе.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    Dim i As Integer, counter As Integer, g As Integer
    Dim location As String, dated As String

    i = Range("W2").Value

    If Not Application.Intersect(Target, Range("A1:L50")) Is Nothing Then

        Cancel = True

        For counter = 1 To i
            g = (counter + 3)
            location = Range("V" & g).Value
            dated = Range("W" & g).Value

            If Target.Address = ("V" & g) Then
                MsgBox Target.Cells(1).Address

                If MsgBox("You are about to sign this document as " & Application.UserName & "." & _
                     " Please ensure all information is correct. Once signed the document cannot be edited.", vbOKCancel) = vbCancel Then

                    Exit Sub

                Else

                    Range(location).Value = Application.UserName
                    If Not Range("W" & g).Value = "No" Then
                        Range(dated).Value = Now
                    Else:End If
                End If

            End If

        Next counter

    End If

End Sub

если я закомментирую для l oop и

If Target.Address = ("V" & g) Then

и введу g в качестве жесткого числа, код будет выполняться и заполнять любую строку подписи и даты, соответствующую до этого значения г. Я пытался использовать для l oop, чтобы изменение значения g основывалось на двойном щелчке по ячейке, но с полным кодом, не закомментированным, кажется, что он не запускается, когда по любой ячейке в диапазоне дважды щелкают. Есть ли у меня неправильное понимание того, как использовать для l oop? Или я пропустил гораздо более простой метод?

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