我正在尝试将以制表符分隔的文本文件中存储的公式加载到工作表中的某个范围。我已经使用该函数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] 删除。
我来说两句