Where did you try and declare the array and how did you try and populate it?
Option ExplicitPrivate Declare PtrSafe Function GetTickCount Lib "kernel32" () As Long
Public priceArray() As Variant
Private Sub Worksheet_Change(ByVal Target As Range)........etc
Private Sub Worksheet_Change(ByVal Target As Range)
Dim priceArray() As Variant....
Try declaring it in a general module (where you install macros) rather than in a sheet module (where you install event code) and do not declare it a second time in the event procedure (as your code above shows you doing)... then you should be able to ReDim it in the Change event (or any other event, macro, function, etc.) procedure to give it size and then fill it with values or, alternately, assign an exist or newly created array to it.works fine but obviously the array isn't avaliable all over
It should be declared in a standard module not a class module like a sheet module.
Option Explicit
Public priceArray() As Variant