最终我正在尝试将范围写入文本文件。当我得到范围的值时,它返回一个2d变量数组。但是,如果我尝试将其传递给转换函数,则会出现类型不匹配错误。
代码是:
Dim Data As String
Set ts = fso.CreateTextFile("testfile.txt", True)
Data = ArrayToDelimitedString(wksMyWorkSheet.Range("rngMyRange").Value)
ts.Write (Data)
ts.Close
Public Function ArrayToDelimitedString(variantArray() As Variant) As String
Dim delimitedString As String, index As Integer
For index = 1 To UBound(variantArray(1))
delimitedString = delimitedString & CStr(variantArray(1, index)) & ","
Next
ArrayToDelimitedString = Left(delimitedString, Len(delimitedString) - 1)
End Function
我想知道为什么.Value会返回一个二维数组,为什么它会给我这个不匹配错误。
答案 0 :(得分:2)
Range()方法返回Variant的Variant。 如果要使用2D数组(字符串的变体),请使用Transpose方法。
ArrayToDelimitedString(wApplication.WorksheetFunction.Transpose(wksMyWorkSheet.Range("rngMyRange").Value))