例如,这里有一种方法(假设制作没有问题
arr2
2D阵列):
Sub TwoD_ArrayTo_1D_Array()
Dim rg As Range, arr As Variant, arr2, v
Dim nr As Long, nc As Long, r As Long, c As Long, i As Long
Set rg = Sheet1.Range("A2").CurrentRegion
arr = rg.Value 'assumes >1 cell...
nr = UBound(arr, 1) '2D array size...
nc = UBound(arr, 2)
ReDim arr2(1 To nr * nc, 1 To 1) 'max possible size needed
i = 0
'loop `arr` and fill `arr2`
For r = 1 To nr
For c = 1 To nc
If arr(r, c) <> "No DATA" Then
i = i + 1
arr2(i, 1) = arr(r, c)
End If
Next c
Next r
'using Resize() only fills the needed range
Sheet1.Range("H2").Resize(i).Value = arr2
End Sub