如何解决如何将格式应用于 VBA 宏 (Word) 中的非连续单元格范围?
我需要对 MS Word 文档中表格的矩形区域执行一些简单的任务。假设它包含 10 列和 20 行。例如,我需要将单元格中的文本从第 2 列、第 3 行到第 8 列、第 18 行居中。我试图获得一个在指定位置开始和结束的范围,但它包括例如来自第 9 和 10 列以及第 3 至 17 行。以及最左侧列的相应单元格。另一方面,如果我调用此范围的 Select
方法,它会根据需要选择一个矩形区域。但是,我不想使用选择,因为它们会使文本闪烁。
作为解决方案,我遍历这些单元格,但需要很长时间。
解决方法
«作为一个解决方案,我遍历这些单元格,但需要很长时间。»
下面的代码,包括错误检查,对于单个表花费的时间不到 1 秒:
Sub Demo()
Application.ScreenUpdating = False
Dim eTime As Single: eTime = Timer
Dim Tbl As Table,r As Long,Rng As Range
For Each Tbl In ActiveDocument.Tables
With Tbl
If .Rows.Count > 17 Then
If .Columns.Count > 7 Then
For r = 3 To 18
Set Rng = .Cell(r,2).Range
With Rng
.End = .Rows(1).Cells(8).Range.End
.ParagraphFormat.Alignment = wdAlignParagraphCenter
End With
Next
End If
End If
End With
Next
Application.ScreenUpdating = True
eTime = (Timer - eTime + 86400) Mod 86400 ' Just in case execution time spans midnight
MsgBox "Execution took " & Format(eTime / 86400,"hh:mm:ss")
End Sub
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。