gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 20:35:06 25 4
gpt4 key购买 nike

我正在尝试将存储在制表符分隔的文本文件中的公式加载到工作表的范围中。我用过函数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

结果输出:

output

我想知道是否有办法转换从 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

以下是数组类型:

locals

和预期的输出:

output

关于arrays - 如何将字符串类型数组转换为变体类型数组 - Excel VBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37515352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com