До двойного щелчка, вызываемого во второй раз после End Sub - PullRequest
0 голосов
/ 05 марта 2020

Этот код выполняется дважды, и его нельзя! Я понятия не имею, почему он запускается дважды.

Option Explicit
'Double click within pivot table to "select" savings scenario for each row and paste into "Custom Scenario" columns
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Dim LastRow As Integer
Dim ws As Worksheet
Dim wb As Workbook
Dim i As Integer

Application.ScreenUpdating = False
Application.EnableEvents = False
Set wb = ThisWorkbook
Set ws = wb.Worksheets(1)

LastRow = ws.Cells.Find("*", searchorder:=xlByRows, searchdirection:=xlPrevious).Row

Select Case Target.Column 'Basically and If Else, using this value to test criteria
    Case 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 'Only do stuff when in these columns
        If Not Intersect(Target, Range(Cells(10, Target.Column), Cells(LastRow, Target.Column))) Is Nothing Then 'Only do stuff when in these rows of the column
            Select Case Target.Column
                Case 7, 9, 11, 13, 15 'Units columns
                    ws.Cells(Target.Row, 18) = Target.Value 'This column has units
                    ws.Cells(Target.Row, 19) = Target.Offset(0, 1) 'Next column has savings
                    ws.Cells(Target.Row, 17) = Cells(8, Target.Column) 'Percent
                Case Else 'Savings columns
                    ws.Cells(Target.Row, 18) = Target.Offset(0, -1) 'Previous column has units
                    ws.Cells(Target.Row, 19) = Target 'This column has savings
                    ws.Cells(Target.Row, 17) = Cells(8, Target.Column).Offset(0, -1) 'Previous column has the percent
            End Select
        End If
End Select

Application.EnableEvents = True

End Sub


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 8 Then ThisWorkbook.RefreshAll
End Sub

Я могу пройти по нему по одной строке за раз и увидеть, что на самом деле происходит переход от оператора End Sub к оператору Pub Sub Worksheet_BeforeDoubleClick. Без разницы. Заранее спасибо!

Редактировать: Я должен также упомянуть, что я дважды щелкаю на сводной таблице. Что я знаю, обычно вызывает новую вкладку с данными, но я уже использовал это событие в той же сводной таблице, и это не сработало. Не уверен, почему этот код отличается.

1 Ответ

0 голосов
/ 05 марта 2020

решено: добавлено «Cancel = True» после «EnableEvents = true».

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