我只是想知道如何在不使电子表格变得庞大且非常慢的情况下将一系列单元格从十进制转换为十六进制。我也想使用VBA,因为它将用于分析。
我想到这样做的方法是使用DEC2HEX
公式转换单元格,然后隐藏所有小数单元格,但显然这会使电子表格变得非常大。如果有一种方法可以只转换值并用十六进制值替换这些单元格,那将非常有用。
非常感谢任何建议。提前谢谢。
答案 0 :(得分:3)
您可以通过Dec2Hex
类:
WorksheetFunction
Option Explicit
Sub Test()
ConvertToHex Sheet1.Range("A1:A15")
End Sub
Sub ConvertToHex(rngData)
Dim rngCell As Range
For Each rngCell In rngData
rngCell.Value = WorksheetFunction.Dec2Hex(rngCell.Value)
rngCell.NumberFormat = "@" '<-- tidies formatting of hex
Next
End Sub
答案 1 :(得分:3)
一种可能的解决方案 - &gt;
Sub convertRangeToHex()
Dim r As Range
Dim myRange As Range: Set myRange = Application.Selection 'define your range
For Each r In myRange
If IsNumeric(r.Value) Then
r.Value = "0x" & WorksheetFunction.Dec2Hex(r.Value)
End If
Next
End Sub