如何将字符串类型数组转换为变量类型数组-Excel VBA

杰夫·戴维斯(Geoff Davids)

我正在尝试将以制表符分隔的文本文件中存储的公式加载到工作表中的某个范围。我已经使用该函数Split(Expression As String, Delimiter)正确地将每一行依次加载到一维数组中,但是遇到了有关返回的数组类型的问题。

Split函数仅返回字符串类型的数组,而我需要一个变体类型的数组才能将范围设置为。这是因为使用字符串类型数组设置单元格的公式会导致将单元格值设置为原始文本,即使字符串以等号开头。

'Example code to demonstrate the problem:
Sub Tester()
    Dim StringArr(1 To 3) As String
    StringArr(1) = "= 1"
    StringArr(2) = "= 2"
    StringArr(3) = "= 3"
    Range("Sheet1!$A$1:$C$1").Formula = StringArr
    'Cells display raw string until edited manually

    Dim VariantArr(1 To 3) As Variant
    VariantArr(1) = "= 1"
    VariantArr(2) = "= 2"
    VariantArr(3) = "= 3"
    Range("Sheet1!$A$2:$C$2").Formula = VariantArr
    'Cells display formula result correctly
End Sub

结果输出:

输出

我想知道是否有一种方法可以将从Split函数返回的数组转换为变量类型数组,最好没有循环。我知道我可以在一个循环中分别设置每个单元格公式,但是我试图使其保持尽可能高效和整洁。

我正在使用Microsoft Excel for Mac 2011 14.5.5版。VBA使我无所适从。

煎蛋卷

您可以使用WorksheetFunction.Index(或Application.Index)将String数组转换Variant / String数组

Sub Test()

    StringArr = Split("=1 =2 =3")
    VariantArr = WorksheetFunction.Index(StringArr, 1, 0)
    Range("Sheet1!$A$1:$C$1").Formula = StringArr
    Range("Sheet1!$A$2:$C$2").Formula = VariantArr

End Sub

这是数组类型:

当地人

和预期的输出:

输出

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章