如何知道单元格的数据类型
How to know datatype of a cell
我被困在这里有一段时间了,出现 运行 时间错误 13 - 类型不匹配。
Dim Qty, ItemCost, Tot
Qty = wi.Range("C" & i).Value2 'Qty
ItemCost = wi.Range("K" & i).Value2 'Item Cost
Tot = CInt(Qty) * CInt(ItemCost)
当我在 C 和 K 列单元格上尝试 IsNumeric 时,它们是正确的,但我仍然收到该错误。
我也试过:
Tot = Qty * ItemCost
和
Tot = CDbl(Qty) * CDbl(ItemCost)
和
Tot = Qty * CInt(ItemCost)
以及将其转换为整数或双精度数据类型的其他不同组合。
我还手动将列 C 和 K 格式化为数字。
错误仍然存在。我不知道我哪里错了怎么办?
你需要2个东西:
- 创建数值变量的更好方法
- 查看问题所在的更好方法
考虑:
Sub dural()
Dim Qty As Long, Qty_Text As String, wi As Worksheet, i As Long
Set wi = ActiveSheet
i = 1
Qty_Text = Trim(wi.Range("C" & i).Text)
On Error GoTo wtf
Qty = CLng(Qty_Text)
On Error GoTo 0
Exit Sub
wtf:
MsgBox wi.Name & vbCrLf & i & vbCrLf & wi.Range("C" & i).Text
On Error GoTo 0
End Sub
我被困在这里有一段时间了,出现 运行 时间错误 13 - 类型不匹配。
Dim Qty, ItemCost, Tot
Qty = wi.Range("C" & i).Value2 'Qty
ItemCost = wi.Range("K" & i).Value2 'Item Cost
Tot = CInt(Qty) * CInt(ItemCost)
当我在 C 和 K 列单元格上尝试 IsNumeric 时,它们是正确的,但我仍然收到该错误。
我也试过:
Tot = Qty * ItemCost
和
Tot = CDbl(Qty) * CDbl(ItemCost)
和
Tot = Qty * CInt(ItemCost)
以及将其转换为整数或双精度数据类型的其他不同组合。
我还手动将列 C 和 K 格式化为数字。
错误仍然存在。我不知道我哪里错了怎么办?
你需要2个东西:
- 创建数值变量的更好方法
- 查看问题所在的更好方法
考虑:
Sub dural()
Dim Qty As Long, Qty_Text As String, wi As Worksheet, i As Long
Set wi = ActiveSheet
i = 1
Qty_Text = Trim(wi.Range("C" & i).Text)
On Error GoTo wtf
Qty = CLng(Qty_Text)
On Error GoTo 0
Exit Sub
wtf:
MsgBox wi.Name & vbCrLf & i & vbCrLf & wi.Range("C" & i).Text
On Error GoTo 0
End Sub