![](/img/trans.png)
[英]Get value of one column based on value of two OTHER columns, then change column on another worksheet
[英]Change two columns to one column?
我正在使用 access VBA 编写 word.doc。 Doc 从一栏开始。 我使用以下方法将下一部分分成 3 列:
.InsertBreak wdSectionBreakContinuous
With w.ActiveDocument.Sections(2).PageSetup.TextColumns
.SetCount numcolumns:=2
.Add EvenlySpaced:=True
End With
然后我使用以下方法拆分为 2 列:
.InsertBreak wdSectionBreakContinuous
With w.ActiveDocument.Sections(3).PageSetup.TextColumns
.SetCount numcolumns:=1
.Add EvenlySpaced:=True
End With
现在我想回到单列,但以下内容:
.InsertBreak wdSectionBreakContinuous
w.ActiveDocument.Sections(4).PageSetup.TextColumns.SetCount numcolumns:=0
不起作用。 关于如何转换回单列的任何提示? FWIW 所有这些都发生在 word 的单个页面上。
谢谢!
你至少需要使用
w.ActiveDocument.Sections(4).PageSetup.TextColumns.SetCount numcolumns:=1
而不是numcolumns:=0
在这里,使用 numcolumns:=1 会引发错误 5148“数字必须介于 1 和 45 之间”,这表明您可能在测试代码时关闭了错误检查。
此外,如果您与前两段代码进行比较,您是
而在您的第三段代码中,您没有添加列,这表明您无论如何都需要将计数设置为 1 而不是 0。
这对我有用:
Sub ColumnsDemo()
Dim Rng As Range
With ActiveDocument
With .Sections(1)
.PageSetup.TextColumns.SetCount NumColumns:=1
Set Rng = .Range.Paragraphs(10).Range
Rng.Collapse
Rng.InsertBreak wdSectionBreakContinuous
End With
With .Sections(2)
With .PageSetup.TextColumns
.SetCount NumColumns:=2
.EvenlySpaced = True
.LineBetween = False
End With
Set Rng = .Range.Paragraphs(10).Range
Rng.Collapse
Rng.InsertBreak wdSectionBreakContinuous
End With
With .Sections(3)
With .PageSetup.TextColumns
.SetCount NumColumns:=3
.EvenlySpaced = True
End With
Set Rng = .Range.Paragraphs(10).Range
Rng.Collapse
Rng.InsertBreak wdSectionBreakContinuous
End With
With .Sections(4)
With .PageSetup.TextColumns
.SetCount NumColumns:=2
.EvenlySpaced = True
.LineBetween = False
End With
Set Rng = .Range.Paragraphs(10).Range
Rng.Collapse
Rng.InsertBreak wdSectionBreakContinuous
End With
With .Sections(5)
.PageSetup.TextColumns.SetCount NumColumns:=1
End With
End With
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.