单元格数值用 VBA 转 16 进制数值
哪位老师懂得做英文数值转 16 进制值的帮忙下:handshake一、B 列提取 A 列的右侧 15 位数值
二、对应 C 列转换 B 列的左侧第一位数值为 16 进制值,依此类推
三、R 列 转换 B 列 15 位合并的数值为 1 位 16 进制值
四、做个控件,在 A 列都输入好数据后,点击控件达成以上要求。
谢谢!
有大神帮忙看看,谢谢! 顶下。 本帖最后由 林木水123 于 2023-9-11 09:38 编辑
Sub 林木水demo()
Dim i As Integer, h As Integer, arr, sr
h = Cells(Rows.Count, "b").End(xlUp).Row
arr = Range("b3:b" & h)
For i = 1 To UBound(arr)
sr = ""
For j = 1 To 15
If VBA.IsNumeric(Mid(arr(i, 1), j, 1)) Then
Range("C2").Offset(i, j - 1) = Val(Mid(arr(i, 1), j, 1))
Else
Range("C2").Offset(i, j - 1) = ""
End If
sr = sr & Range("C2").Offset(i, j - 1).Value
Next
Range("R" & i + 2) = "'" & VBA.Hex(Val(sr))
Next
End Sub 本帖最后由 林木水123 于 2023-9-11 09:28 编辑
林木水123 发表于 2023-9-11 09:17
Sub 林木水demo()
Dim i As Integer, h As Integer, arr, sr
h = Cells(Rows.Count, "b").End(xlUp).Row
arr = Range("b3:b" & h)
For i = 1 To UBound(arr)
sr = ""
For j = 1 To 15
If VBA.IsNumeric(Mid(arr(i, 1), j, 1)) Then
Range("C2").Offset(i, j - 1) = Val(Mid(arr(i, 1), j, 1))
Else
Range("C2").Offset(i, j - 1) = ""
End If
sr = sr & Range("C2").Offset(i, j - 1).Value
Next
' Range("R" & i + 2) = VBA.Hex(Val(sr))
Range("R" & i + 2) = "=DEC2HEX(" & Val(sr) & ")"
Next
End Sub
原第15行代码可以修改成现在这样的Excel自带的函数公式输入法。hex是Vb自带的十进制转十六。
页:
[1]