Hi Russel
Since the thread is already solved, I feel you need to also know why this happens... This is just for your FYI...
When using Preserve keyword, you can resize only the last array dimension. For example, if your array has only one dimension, you can resize that dimension because it is the last and only dimension. However, if your array has two or more dimensions, you can change the size of only the last dimension and still preserve the contents of the array.
For Example
Private Sub Command1_Click()
Dim MyArray() As String
ReDim Preserve MyArray(1, 1) '<~~ YOU CAN DO THIS
MyArray(1, 1) = "1. Blah Blah"
ReDim Preserve MyArray(1, 2) '<~~ YOU CAN DO THIS
MyArray(1, 2) = "2. Blah Blah"
ReDim Preserve MyArray(1, 3) '<~~ YOU CAN DO THIS
MyArray(1, 3) = "3. Blah Blah"
u = 2
ReDim Preserve MyArray(u, 3) '<~~ YOU CANNOT DO THIS
End Sub
An Alternative is
Private Sub Command1_Click()
Dim MyArray() As String, MyTempArray() As String
ReDim Preserve MyArray(1, 1) '<~~ YOU CAN DO THIS
MyArray(1, 1) = "1. Blah Blah"
ReDim Preserve MyArray(1, 2) '<~~ YOU CAN DO THIS
MyArray(1, 2) = "2. Blah Blah"
ReDim Preserve MyArray(1, 3) '<~~ YOU CAN DO THIS
MyArray(1, 3) = "3. Blah Blah"
u = 2
ReDim Preserve MyArray(u, 3) '<~~ YOU CANNOT DO THIS
ReDim MyTempArray(u, 1)
'Transfer data from MyArray to this array
End Sub