在Excel中,将范围的垂直对齐方式从默认的xlBottom
更改为xlCenter
时,无论是使用普通用户界面还是使用VBA,都是这样:
Range.VerticalAlignment = xlCenter
Excel有时会删除这些单元格中文本的缩进设置。当目标范围同时包含缩进和非缩进单元格时,似乎会发生这种情况。
使用VBA,如何设置任何范围的垂直对齐方式,并为该范围内的每个单元格保留单元格缩进?
答案 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