Do you need to pass the 8 values as individual arguments? It would be better form (also easier to maintain long run) to create a function that finds the minimum of an array (which might already exist)
If you must have it the way you have setup you can use this
Dim a() As String
ReDim a(0 To 0)
Dim i As Long
If reading0 <> vbNullString Then
a(UBound(a)) = reading0
End If
If reading1 <> vbNullString Then
ReDim Preserve a(LBound(a) To (UBound(a) + 1))
a(UBound(a)) = reading1
End If
If reading2 <> vbNullString Then
ReDim Preserve a(LBound(a) To (UBound(a) + 1))
a(UBound(a)) = reading2
End If
...
Again my suggestion is to restructure your code.