我试图列出每个 Excel 行从 7F 到 00 的十六进制值。我通过执行以下代码实现了它:
Sub ListDownHex()
Dim StartValue, i As Integer
Dim nRow As Long
Dim sh As Worksheet
Set sh = ActiveSheet
StartValue = 127 'memory location of 8051 RAM
nRow = 4
For i = StartValue To 0 Step -1
sh.Range("A" & nRow) = Format(Right$("00" & Hex(i), 2), "00")
nRow = nRow + 1
Next i
End Sub
Run Code Online (Sandbox Code Playgroud)
除了具有“A”的十六进制值(如“7A”、“6A”、“5A”等)之外,结果为“00”。进一步检查中间窗口确认 Format() 函数可以做到这一点。
? Format("7B","00") 'desired output
7B
? Format("7A","00") 'not expected output
00
Run Code Online (Sandbox Code Playgroud)
这是一个错误还是我错过了什么?为什么他们的行为不同?(注意:我的问题的重点是 Format() …