我在Excel宏中有代码可以更改一些文本。例如,更改
文本111
到
001
代码运行,并且更改了文本,但是我丢失了前导零。我想保持前导零。我尝试了很多事情,例如
jRange.NumberFormat = "###"
.Replace "Text 333", "003", xlWhole, ReplaceFormat:=True
我也试图在列上设置格式,例如:
jRange.Columns("G").NumberFormat = "###"
这里是示例代码
Sub FixIt()
Dim jRange As Range
Set jRange = ActiveSheet.Range("G2:G1000")
With jRange
.Replace "Text 111", "001", xlWhole
.Replace "Text 222", "002", xlWhole
.Replace "Text 333", "003", xlWhole
.Replace "Text 444", "077", xlWhole
End With
End Sub
作为起点,将整个工作表格式化为文本。通过单击列标题左侧和行标题上方的小按钮来执行此操作。这将选择整个工作表。
然后在“主页”选项卡上的“数字”组中选择“文本”。
如果有一点严厉,那就可以了。
另一种方法,如果新单元格不是计算的一部分,则为每个数字加上单引号;例如
.Replace "Text 333", "'003", xlWhole, ReplaceFormat:=True
我知道这是一个古老的问题,但是要更正确地回答它,正确的更改是将您先前的尝试.NumberFormat = "###"
更改为.NumberFormat = "000"
。 0
充当.NumberFormat
中始终可见的准则,而#
充当“如有必要”准则。