永发信息网

在word中用VBA做段落缩进正常,但取消缩进时发现取消不了。 录制时正常,但是重复运行时发现无法取消缩进

答案:2  悬赏:20  手机版
解决时间 2021-02-10 20:35
VBA代码如下:
Sub set_write_simple()
With Selection.ParagraphFormat
.LeftIndent = CentimetersToPoints(0)
.RightIndent = CentimetersToPoints(0)
.FirstLineIndent = CentimetersToPoints(0)
.OutlineLevel = wdOutlineLevel1
.CharacterUnitLeftIndent = 0
.CharacterUnitRightIndent = 0
.CharacterUnitFirstLineIndent = 0
End With
Selection.TypeText Text:="一级" '这句话没有缩进,正常
Selection.TypeParagraph

With Selection.ParagraphFormat
.LeftIndent = CentimetersToPoints(1.06)
.RightIndent = CentimetersToPoints(0)
.FirstLineIndent = CentimetersToPoints(0.35)
.OutlineLevel = wdOutlineLevelBodyText
.CharacterUnitLeftIndent = 6
.CharacterUnitRightIndent = 0
.CharacterUnitFirstLineIndent = 2
End With
Selection.TypeText Text:="正文" '这句话做了段落缩进和首行缩进,正常
Selection.TypeParagraph
With Selection.ParagraphFormat
.LeftIndent = CentimetersToPoints(0)
.RightIndent = CentimetersToPoints(0)
.FirstLineIndent = CentimetersToPoints(0)
.OutlineLevel = wdOutlineLevel1
.CharacterUnitLeftIndent = 0
.CharacterUnitRightIndent = 0
.CharacterUnitFirstLineIndent = 0
End With
Selection.TypeText Text:="一级" '这句话显示异常,本没有任何缩进却缩进了。
End Sub
最佳答案
请在每一行 With Selection.ParagraphFormat 的后面添加以下一行:
        .Reset
将所有的段落格式清除,然后用后续的代码重新设置即可。


以下是完整的、精简后的代码:
Sub set_write_simple()
    With Selection.ParagraphFormat
        .Reset
        .OutlineLevel = wdOutlineLevel1
        .CharacterUnitLeftIndent = 0
        .CharacterUnitRightIndent = 0
        .CharacterUnitFirstLineIndent = 0
    End With
    Selection.TypeText Text:="一级"    '这句话没有缩进,正常
    Selection.TypeParagraph

    With Selection.ParagraphFormat
        .Reset
        .OutlineLevel = wdOutlineLevelBodyText
        .CharacterUnitLeftIndent = 6
        .CharacterUnitRightIndent = 0
        .CharacterUnitFirstLineIndent = 2
    End With
    Selection.TypeText Text:="正文"  '这句话做了段落缩进和首行缩进,正常
    Selection.TypeParagraph

    With Selection.ParagraphFormat
        .Reset
        .OutlineLevel = wdOutlineLevel1
        .CharacterUnitLeftIndent = 0
        .CharacterUnitRightIndent = 0
        .CharacterUnitFirstLineIndent = 0
    End With
    Selection.TypeText Text:="一级"   '这句话显示异常,本没有任何缩进却缩进了。
End Sub
全部回答
with selection.paragraphformat .leftindent = centimeterstopoints(0) '左缩进为0 .firstlineindent = centimeterstopoints(0) '首行缩进为0 end with
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
丽形瑜伽地址有知道的么?有点事想过去
紫开便利店地址在哪,我要去那里办事
怎样移动一根火柴使二减一等于二
艾柳瑜伽养生会馆地址好找么,我有些事要过去
鼠标灯闪烁 鼠标毽子都好使但不受控制的乱懂
树丰诊所地址在什么地方,想过去办事
EB-NAIlgA抗与VCAlgA有区别吗?
FT账户钱能否自由划到基本户
源瑜伽会馆地址在什么地方,想过去办事
界首市阜阳缝缝补补第一家露露洗染织补中心怎
【大耳兽】莫慢待是什么意思数码宝贝3中大耳
禅逸瑜伽地址好找么,我有些事要过去
民光家纺在哪里啊,我有事要去这个地方
孤单与寂寞哪个更难熬?
菩尔瑜伽养生会所(文化广场店)怎么去啊,我要
推荐资讯
长欣推拿我想知道这个在什么地方
假如你是个女大学生,你是想要个帅哥男朋友还
胃热吃什么药
递推算法的递推的概念与基本思想
炖汤100克水放多少盐?
刘师傅手工面坊这个地址在什么地方,我要处理
预防道路交通事故工作开展的原则是什么
99pad论坛为什么打不开
人眼视网膜上所成的是什么像
柯达飞翔数码影像这个地址在什么地方,我要处
【木高峰】林平之为什么要杀木高峰?
盘点国产剧和受追捧的美剧差距在哪
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?