将范围内的文本替换为前导零的数字

问题描述 投票:0回答:2

我在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
excel vba string-formatting
2个回答
2
投票

作为起点,将整个工作表格式化为文本。通过单击列标题左侧和行标题上方的小按钮来执行此操作。这将选择整个工作表。

然后在“主页”选项卡上的“数字”组中选择“文本”。

如果有一点严厉,那就可以了。

另一种方法,如果新单元格不是计算的一部分,则为每个数字加上单引号;例如

.Replace "Text 333", "'003", xlWhole, ReplaceFormat:=True

0
投票

我知道这是一个古老的问题,但是要更正确地回答它,正确的更改是将您先前的尝试.NumberFormat = "###"更改为.NumberFormat = "000"0充当.NumberFormat中始终可见的准则,而#充当“如有必要”准则。

© www.soinside.com 2019 - 2024. All rights reserved.