我使用带有标签的Excel模板,必须使用VBA替换为输入值。
为此,我使用了:
Cells.Replace What:="&/TDT/&", Replacement:="123456987654321456654444", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:= _
True, ReplaceFormat:=False
但执行此替换后单元格中显示的值为1,23457E + 23。我尝试在单元格设置中使用不同的格式,我尝试更改ReplaceFormat和SeachFormat参数而不更改结果。
任何人都知道为什么excel不尊重细胞的格式?
已使用的格式为已替换单元格的文本,Office版本为2007/2010。我需要的是在单元格中看到123456987654321456654444而不是替换后的1,23457E + 23。
答案 0 :(得分:0)
您可以做的是使用Value
属性和Find
方法结合实现安全(或更安全)替换,如下所示:
Sub SafeReplace(ByVal What As String, ByVal Replacement As String)
Set cell = Cells.Find(What:=What, LookAt:=xlPart, MatchCase:=False, SearchFormat:=False)
Do While Not cell Is Nothing
cell.Value = Replacement
Set cell = Cells.FindNext(cell)
Loop
End Sub
然后使用它
SafeReplace "&/TDT/&", "123456987654321456654444"
它应该尊重细胞的格式。
答案 1 :(得分:0)
'
将其视为文本:
Cells.Replace What:="&/TDT/&", Replacement:="'123456987654321456654444"