在Excel上replace乱七八糟的格式化列表

我有这样一个列表,所有的章节和子章节都采用下面的格式。

__1________________________ __1__1_____________________ __1__2_____________________ __1__2__1__________________ 

有没有办法将这个列表改成下面的列表?

 1 1.1 1.2 1.2.1 

我试过replace,但是用点或空格replace它们的全部_,从而破坏了列表的本质。

有没有办法做到这一点使用VBA,它不必在您的答案是VBA,因为我可以在它上面进行格式化,以适应VBA。 我有这样的包含数千行的许多文件。

这似乎很快就能更正您的示例数据。

 Sub Replacing_messed_up_formatted_list() Dim rng As Range With Worksheets("Sheet4") With .Columns(1) .Replace what:=Chr(95), replacement:=Chr(46), lookat:=xlPart Do While Not .Find(what:=Chr(46) & Chr(46), lookat:=xlPart) Is Nothing .Replace what:=Chr(46) & Chr(46), replacement:=Chr(46), lookat:=xlPart Loop .Replace what:=Chr(32), replacement:=vbNullString, lookat:=xlPart .TextToColumns Destination:=.Cells(1), DataType:=xlFixedWidth, _ FieldInfo:=Array(Array(0, 9), Array(1, 2)) For Each rng In Intersect(.Parent.UsedRange, .Cells) If Right(rng.Value2, 1) = Chr(46) Then rng = Left(rng.Value2, Len(rng.Value2) - 1) Next rng End With End With End Sub 

a1_1_1_1 A1_1_1_1_1