我有一组数据,其格式不同,例如B,KB,MB,GB和TB。我已经编写代码来删除单位并转换为GB。我的问题是,最后一节'b到kb'会导致类型不匹配错误。我不明白为什么我已经将相同的代码应用于每次转换?提前致谢。VBA类型不匹配错误
这里是我的代码:
Sub RemoveUnits()
Dim r As Range
Dim x As Long
For Each r In ActiveSheet.UsedRange
w = r.Value
'GB
If InStr(w, "gb") > 0 Then
r = Left$(r, Len(r) - 2)
Debug.Print (r.Value)
'No conversion required
'TB
ElseIf InStr(w, "tb") > 0 Then
r = Left$(r, Len(r) - 2)
r = r * 1024
Debug.Print (r.Value)
'Convert tb to gb
'MB
ElseIf InStr(w, "mb") > 0 Then
r = Left$(r, Len(r) - 2)
r = (1/1024) * r
Debug.Print (r.Value)
'Convert mb to gb
'KB
ElseIf InStr(w, "kb") > 0 Then
r = Left$(r, Len(r) - 2)
r = (1/1048576) * r
Debug.Print (r.Value)
'B to KB
ElseIf InStr(w, "b") > 0 Then
r = Left$(r, Len(r) - 1)
r = (1/1024) * r
debung.Print (r.Value)
End If
Next r
End Sub
除了'debung.Print',我不确定,你的回答与我的不同:) – 2014-10-06 13:03:05
@SiddharthRout嗨Siddharth。我希望你不要以我自己写的答案与你有相似之处。另外,我希望你的评论并不意味着我偷走了你的答案。 :-) – 2014-10-06 13:29:13
如果我本人将采取它,我已经downvoted;)不,我不是说你偷了答案。我之所以这样说,是因为我没有看到发布类似答案的理由...... – 2014-10-06 13:35:21