为什么会删除单元格的格式?我只想替换一个值,但它会删除单元格中所有单词的下划线。
For Each sht In ActiveWorkbook.Worksheets
sht.Cells.Replace what:=fnd, Replacement:=rplc, _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
SearchFormat:=False, ReplaceFormat:=False
Next sht
答案 0 :(得分:1)
似乎在Excel 2007中,整个单元格值被替换。如果要替换的值在格式化之间,您可以在单元格值XML中替换它:
Dim r As Range, s As String
Set r = sht.UsedRange.Find(fnd)
s = r.Value(11) ' Excel.XlRangeValueDataType.xlRangeValueXMLSpreadsheet = 11
s = Replace(s, ">" & fnd & "<", ">" & rplc & "<")
r.Value(11) = s
Dim r As Range, i As Integer
Set r = sht.UsedRange.Find(fnd)
i = InStr(r.Characters.Text, fnd)
r.Characters(i, Len(fnd)).Insert rplc