我正在尝试做一些应该简单的事情。我在excel宏中有 VBA
代码,用于更改某些文本。
因此,例如,更改"Text 111" to text "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
答案 0 :(得分:2)
作为起点,将整个工作表格式化为文本。通过单击列标题左侧的小按钮并在行标题上方执行此操作。这将选择整个工作表。
然后,在主页选项卡上,选择“数字”组中的“文本”。
如果有点严厉,那就行了。
另一种方式,如果新单元格不是计算的一部分,则使用单引号为每个数字加前缀; e.g。
.Replace "Text 333", "'003", xlWhole, ReplaceFormat:=True
答案 1 :(得分:0)
我知道这是一个老问题,但为了更准确地回答,正确的改变是将您之前的尝试.NumberFormat = "###"
更改为.NumberFormat = "000"
。 0
在.NumberFormat
中始终是明显的指导原则,而#
则充当“必要时”指南。