如何在不影响缩进的情况下更改范围的垂直对齐?

时间:2018-03-26 18:30:10

标签: excel vba excel-vba

在Excel中,将范围的垂直对齐方式从默认的xlBottom更改为xlCenter时,无论是使用普通用户界面还是使用VBA,都是这样:

Range.VerticalAlignment = xlCenter

Excel有时会删除这些单元格中文本的缩进设置。当目标范围同时包含缩进和非缩进单元格时,似乎会发生这种情况。

使用VBA,如何设置任何范围的垂直对齐方式,并为该范围内的每个单元格保留单元格缩进?

1 个答案:

答案 0 :(得分:3)

您可以使用IndentLevel的{​​{1}}属性:

Range

<强>更新

作为Chris Neilson pointed out,当您循环遍历单元格时,单独更改对齐方式不会影响缩进,而Sub Test() Dim rng As Range, r As Range Dim indent As Long Set rng = Sheet1.Range("A1:A10") For Each r In rng indent = r.IndentLevel r.VerticalAlignment = xlCenter r.IndentLevel = indent Next End Sub 会删除整个范围内的缩进。

因此,这是迄今为止经过测试的最快方法(笔记本电脑上的运行时间为0.41秒):

rng.VerticalAlignment = xlCenter