【发布时间】:2016-07-11 16:50:53
【问题描述】:
所以我正在尝试编写一个宏来计算一些相对值。我基本上遍历整个列,取一些值并将其除以另一个值并写在另一列中。该程序无关紧要。困扰我的是我在 hold3=hold/hold2 中得到类型不匹配。我就这样崩溃了(使用hold、hold2、hold3)来看看问题出在哪里。它在分区中。如果我只是离开 hold3=hold 它不会给我一个错误。当我尝试除法或求和或进行任何操作时,它会给我不匹配错误。我尝试将所有变量声明为双精度,根本不使用任何变量(用于 Cells(i,8).Value = Cells(i,7).Value/Cells(cuenta,7) )并且没有任何效果。
Sub DivideByTotal()
Dim innerTop As Long
Dim counter As Long
Dim hold As Variant
Dim hold2 As Variant
Dim hold3 As Variant
For counter = 9 To 559
innerTop = counter + 4
Dim i As Long
For i = counter To innerTop
Dim cuenta As Long
cuenta = counter
hold = Cells(i, 7).Value
hold2 = Cells(cuenta, 7).Value
hold3 = hold / hold2
Cells(i, 8).Value = hold3
Next i
counter = counter + 4
Next counter
End Sub
【问题讨论】:
-
使用
Debug.Print hold和Debug.Print hold2检查你用来做除法的值是什么。您也可以使用msgbox hold和msgbox hold2来实现相同的效果。 -
如果你有一个空白单元格,你会在使用变体时得到这个错误。