2016-08-12 1 views
2

Я вставил на рабочий лист кнопку команды, которая при нажатии открывает форму пользовательского пароля. когда вводится пароль, это ставит номер МВЗ в рабочий лист Резюме.Прокрутите список и скопируйте ячейку вправо

Код, приведенный ниже, автоматически не обновляет сводную таблицу, так как требует изменения целевой ячейки.

Как я могу изменить следующий код для обновления каждый раз, когда изменяется целевая ячейка?

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 

'This line stops the worksheet updating on every change, it only updates 
'when cell G1 is touched 

If Not Intersect(Target, Range("G1")) Is Nothing Then Exit Sub 

'Set the Variables to be used 
Dim pt As PivotTable 
Dim Field As PivotField 
Dim NewCat As String 

'Here you amend to suit your data 
Set pt = Worksheets("Executive Summary").PivotTables("ServiceCostAnalysis") 
Set Field = pt.PivotFields("Cost Centre") 
NewCat = Worksheets("Executive Summary").Range("G1").Value 

'This updates and refreshes the PIVOT table 
With pt 
    Field.ClearAllFilters 
    Field.CurrentPage = NewCat 
    pt.RefreshTable 
End With 

End Sub 

Благодаря

ответ

1

Просто Worksheet_Change вместо Worksheet_SelectionChange:

Private Sub Worksheet_Change(ByVal Target As Range) 

Эта процедура выполняется каждый раз, когда ячейка в рабочем листе изменяется.

+0

К сожалению, это не сработало. Не уверен, почему, хотя это довольно раздражает –

+1

Пожалуйста, удалите «Не» во второй строке кода и повторите попытку. –

+0

Все еще ничего. Его не отладка или что-то просто не обновляет теперь сводные таблицы. –