我有这样的列表,所有章节和子章节的格式如下所示。
__1________________________
__1__1_____________________
__1__2_____________________
__1__2__1__________________
有没有这种方法可以将此列表更改为下面的列表?
1
1.1
1.2
1.2.1
我尝试过替换,但是它用点或空格替换了所有_,从而破坏了列表性质。
有没有办法使用VBA执行此操作,它不一定是你的答案中的VBA,因为我可以使用它来格式化它以适应VBA。我有很多这样的文件包含数千行。
答案 0 :(得分:1)
这似乎可以快速纠正您的样本数据。
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