尝试将变量数组转换为分隔字符串,并始终使类型不匹配

时间:2012-03-26 20:35:46

标签: vba excel-vba office-2007 excel

最终我正在尝试将范围写入文本文件。当我得到范围的值时,它返回一个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会返回一个二维数组,为什么它会给我这个不匹配错误。

1 个答案:

答案 0 :(得分:2)

Range()方法返回Variant的Variant。 如果要使用2D数组(字符串的变体),请使用Transpose方法。

ArrayToDelimitedString(wApplication.WorksheetFunction.Transpose(wksMyWorkSheet.Range("rngMyRange").Value))