将Variant数组转换为String

use*_*722 7 vba variant

我试图采用变量变量并将其转换为字符串,以便我可以对数据运行拆分函数.但是,每当我尝试重新定义变体时,我都会遇到类型不匹配错误.我使用了CStr(),Str()和ToString函数.没有工作.

我错过了什么?

Function FlatLine(ByVal lines As Variant)

Dim flat() As String
ReDim Preserve flat(i)

For i = 0 To UBound(lines)
    flat(UBound(flat)) = lines(i)
    ReDim Preserve flat(LBound(flat) To UBound(flat) + 1)
Next i

Dim flat2 as String
flat2 = Cstr(flat)

^ errors there.
Run Code Online (Sandbox Code Playgroud)

bug*_*net 6

据我所知,for是无用的.更好的ReDim平坦并生成flat2如下

ReDim flat(UBound(lines))
flat2 = Join(flat,"|")
Run Code Online (Sandbox Code Playgroud)

事实上,考虑到ByVal可能会出现直线

flat2 = Join(lines,"|")
Run Code Online (Sandbox Code Playgroud)