Excel VBA格式hex

我想将3位长的hex转换成6位数。 例如12F shd是00012F。 我试过这个代码,但它没有工作。

endadd = Format(endadd, "000000") 

正如Scott Craner指出的那样,一个简单的Right("000000" & endadd,6)可以很好地工作,但是Right$("000000" & endadd,6)稍微快一些。

此外,从性能angular度来看,它确实取决于endadd值的原始来源是string还是数字。

 'CONCAT String Approach 'If the hex source is a string, then this is the most efficient approach formattedHex = Right$("000000" & "12F", 2) 'CONCAT Numeric Approach 'But if the hex source is a numeric, then this hex conversion AND concatenation is required, but it is SLOW formattedHex = Right$("000000" & Hex$(&H12F), 2) 'ADDITION/OR Numeric Approach 'When the hex source is numeric it is more efficient to use a bit trick to add AND convert formattedHex = Right$(Hex$(&H1000000 + &H12F), 2) formattedHex = Right$(Hex$(&H1000000 Or &H12F), 2) 

10米操作循环的结果:

 Approach | Using Right | Using Right$ | ==========================+============================= CONCAT String Approach | 1.59s | 1.40s CONCAT Numeric Approach | 2.63s | 2.33s ADDITION Numeric Approach | 1.74s | 1.60s ======================================================