【发布时间】:2017-10-11 08:08:15
【问题描述】:
我目前正在尝试将一些数据转换为我想要的单位。只有两个单元;密耳和微米。组合框允许用户选择他们希望数据使用的单位。如果数据不是用户想要的单位,则需要进行转换。
我正在尝试对此进行测试:
现在的情况是数据以密耳为单位,我需要将其转换为微米。但是它一直给我 type mismatch 的错误,因为第二个数据在线:rngx.value = rngx.value / y
Dim cx As range
Dim rng As range
Dim cy As range
Dim rngx As range
Const y As Double = 25.4
If unit <> Sheet1.ComboBox1.value Then '------> Data 1
If Sheet1.ComboBox1.value = " Mils" Then '---> from mils to microns
Set cx = Sheet9.range("E2", Sheet9.range("E2").End(xlDown))
For Each rng In cx
rng.value = rng.value * y
Next rng
Else
Set cx = Sheet9.range("E2", Sheet9.range("E2").End(xlDown))'---> Microns to mils
For Each rng In cx
rng.value = rng.value / y
Next rng
End If
End If
If unit <> Sheet1.ComboBox2.value Then '-------> Data 2
If Sheet1.ComboBox2.value = " Mils" Then'---> from mils to microns
Set cy = Sheet9.range("I2", Sheet9.range("I2").End(xlDown))
For Each rngx In cy
rngx.value = rngx.value * y
Next rngx
Else
Set cy = Sheet9.range("I2", Sheet9.range("I2").End(xlDown))'---> Microns to mils
For Each rngx In cy
rngx.value = rngx.value / y
Next rngx
End If
End If
【问题讨论】:
-
I列中必须有一些非数字单元格,除法会产生类型不匹配。找不到其他解释。尝试在除法前添加Debug.Print rngx.Address, rngx.value,并在抛出错误时检查即时窗口中显示的最后一行。 -
现在我知道为什么了,谢谢!!
-
为什么?请赐教
-
@RachelTanHuiYi 我猜我列中的非数字单元格被揭穿了:)