Ввод комментария в качестве ответа. Обратите внимание, что комментарий BigBen решит эту проблему, поэтому его можно также записать здесь:
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
Range("H6").Value = Application.Min(Range("W:W"))
End Sub
Теперь к вашей ошибке компиляции:
Ошибка компиляции, возникающая при Range("H6").PasteSpecial xlPasteFormulas("=MIN(W:W)")
, из-за синтаксиса.
В документации для Range.PasteSpecial вы заметите, что аргументы для действия вставки.
При записи ("=MIN(W:W)")
прикрепляется к xlPasteFormulas
будет указывать на ошибку, когда компилятор видит ()
как применимый к массиву. Вот почему вы получили ошибку, которую получили.
Теперь при правильном использовании Range.PasteSpecial
... Range.PasteSpecial (Paste, Operation, SkipBlanks, Transpose)
имеется 4 возможных аргумента. Я оставлю дальнейшее объяснение документации о том, что может заполнять каждый аргумент, но приведу пример пары Paste
общих аргументов:
'Pastes the value from the copied cell
Cells(1,1).Copy
Cells(2,2).PasteSpecial xlPasteValues
'Pastes the formula from the copied cell
Cells(1,1).Copy
Cells(2,2).PasteSpecial xlPasteFormulas
Обратите внимание, что в приведенном выше примере оба требуют, чтобы формула или значение получаются из скопированной ячейки.
Если вы хотите добавить формулу в ячейку, вы можете использовать Range.Formula
, например:
Cells(1,1).Formula = "=Min(B:B)"
Надеемся это и объясняет проблему, и решает вашу проблему.