VBA Dec2Hex转换无法正常工作

时间:2018-08-01 05:45:19

标签: excel vba excel-vba

我需要将一个特定的列(E)从十进制转换为十六进制。结果应放在另一列(在我的情况下为P)。

我拥有的代码在E列中的每个单元格上都能很好地工作,但是,当我在该单元格中有516353时,由于某种原因,转换会出错,而不是在列中写入7E101 P,我得到一个7E+101 ...

即使我的列设置为Number类型(我在Format Cells中也尝试了General type,但它仍然没有改变),我仍然不明白为什么这种情况只发生在特定的数字上。

我拥有的代码:

Private Sub CommandButton1_Click()
Dim i As Integer
Dim r As Range
Dim myRange As Range: Set myRange = Range("E2:E2000") 'define your range
Dim rcopy As Range
Dim myCopyRange As Range: Set myCopyRange = Range("P2:P2000") 'range for the converted values

For i = 1 To myRange.Cells.Count
    myCopyRange.Cells(i).Value = WorksheetFunction.Dec2Hex(myRange.Cells(i).Value)
Next
End Sub

任何帮助将不胜感激!谢谢!

1 个答案:

答案 0 :(得分:1)

您正在使用通用格式将速记科学符号提供给单元格,因此Excel认为您要进行转换。首先将范围设置为“文本”格式;它不会损害处理。

myCopyRange.numberformat = "@"

For i = 1 To myRange.Cells.Count
    myCopyRange.Cells(i).Value = WorksheetFunction.Dec2Hex(myRange.Cells(i).Value)
Next