在第一个索引中带有string的variables数组 – 用双types不匹配覆盖

我有一个变体数组,如下所示:

“狗”“猫”“马”

我想覆盖这些值

1.01 2.02 3.03 

码:

 sumHolder = loanSums(x) If sumHolder = "N/A" Then sumHolder = "0" End If loanSums(x) = vbNull loanSums(x) = sumHolder + trimmedRange(i, trimmedRngCols.paymentAmt) 

我试图只分配双string,我得到一个types不匹配。 任何想法如何做到这一点

你做得不对

一维变体arrays:

 Dim a As Long, vals As Variant vals = Array("dog", "cat", "horse") For a = LBound(vals) To UBound(vals) Debug.Print vals(a) vals(a) = CDbl(a + 1 + (a + 1) / 100) Next a For a = LBound(vals) To UBound(vals) Debug.Print vals(a) Next a 

立即窗口的结果:

 dog cat horse 1.01 2.02 3.03 

两维变体arrays:

 dim a as long, vals as variant, tmp as variant vals = range("A2:E4").value2 debug.print lbound(vals, 1) & ":" & ubound(vals, 1) '1:3, 3 'rows' in array debug.print lbound(vals, 2) & ":" & ubound(vals, 2) '1:5, 5 'columns' in array for a = lbound(vals, 1) to ubound(vals, 1) debug.print vals(a, 1) & " - " & vals(a, 3) tmp = vals(a, 1) vals(a, 1) = vals(a, 3) vals(a, 3) = tmp next a for a = lbound(vals, 1) to ubound(vals, 1) debug.print vals(a, 1) & " - " & vals(a, 3) next a range("A2").resize(ubound(vals, 1), ubound(vals, 2)) = vals 

即时窗口和工作表的结果:

 1:3 1:5 dog - 1.01 cat - 2.02 horse - 3.03 1.01 - dog 2.02 - cat 3.03 - horse 

variant_array_substitution_before variant_array_substitution_after
在处理之前 进行处理

我已经包含了一些前后图像,以便您可以通过左alignment(文本)和右alignment(数字)来显示交换文本的变体编号的清晰视图,反之亦然一个问题。 您的“types不匹配”必须是价值转移之外的其他东西。