vba - 如果使用vba在word中的表格调整行高
问题描述
我有一个基于两个不同表格的两页重复的模板。我正在研究一个宏来调整整个文档中这些表格的行高,以使行高相同。有时表格会留在页面上,有时它会不断溢出到新页面上。
我一直在尝试几种不同的方法,下面是我最接近让它工作的方法。下面通过查看文档的位置来获取实际的行高。我遇到的问题是表格是跨页的,因此当它到达下一页的一行时会一直显示错误。错误是“测量值必须在 0 pt 和 1584 pt 之间。”
这是我目前使用的代码:
A = 1
B = 2
While B <= ActiveDocument.Tables.Count
Set T1 = ActiveDocument.Tables(A)
Set T2 = ActiveDocument.Tables(B)
Set R1 = T1.Rows
Set R2 = T2.Rows
Set C1 = T1.Columns
Set C2 = T2.Columns
For i = 1 To R1.Count()
If i = R1.Count() Then
Else
H1 = T1.Rows(i + 1).Range.Information(wdVerticalPositionRelativeToPage) _
- T1.Rows(i).Range.Information(wdVerticalPositionRelativeToPage)
H2 = T2.Rows(i + 1).Range.Information(wdVerticalPositionRelativeToPage) _
- T2.Rows(i).Range.Information(wdVerticalPositionRelativeToPage)
If H1 > 0 Or H1 < 1584 Or H2 > 0 Or H2 < 1584 Then
If H1 > H2 Then
R2(i).Height = H1
Else
R1(i).Height = H2
End If
End If
End If
Next
A = A + 1
B = B + 2
Wend
我还尝试使用以下设置高度,在这种情况下不起作用,因为它只获取行的默认高度而不是实际高度。
H1 = R1(i).Height
H2 = R2(i).Height
感谢您提前提供任何帮助。
解决方案
感谢所有帮助过的人。我最终通过使用以下代码解决了这个问题,并使文档页面变得非常长。不理想,但有效。
Sub rowHeight()
A = 2
B = 4
While B <= ActiveDocument.Tables.Count
Set T1 = ActiveDocument.Tables(A)
Set T2 = ActiveDocument.Tables(B)
Set r1 = T1.Rows
Set r2 = T2.Rows
Set C1 = T1.Columns
Set C2 = T2.Columns
On Error Resume Next
For i = 1 To r1.Count()
If i = r1.Count() Then
Else
H1 = T1.Rows(i + 1).Range.Information(wdVerticalPositionRelativeToPage) _
- T1.Rows(i).Range.Information(wdVerticalPositionRelativeToPage)
H2 = T2.Rows(i + 1).Range.Information(wdVerticalPositionRelativeToPage) _
- T2.Rows(i).Range.Information(wdVerticalPositionRelativeToPage)
'H1 = R1(i).Height
'H2 = R2(i).Height
If H1 > 0 & H1 < 1584 & H2 > 0 & H2 < 1584 Then
If H1 > H2 Then
r2(i).Height = H1
Else
r1(i).Height = H2
End If
End If
End If
Next
A = A + 4
B = B + 4
Wend
End Sub
推荐阅读
- php - 从没有查询字符串htaccess规则的url获取参数
- ios - 从提到的 url 设置图像时,SDWebImage 会引发错误
- applescript - 如何告诉applescript用新的CMD+Shift+5方法录屏?
- javascript - 如何使用javascript将文本高度调整为div
- python - 在一个图中绘制多个时间序列
- java - FileReader 无法在 Java 项目中找到文件
- c# - Parallel 类是如何动态调整并行度的?
- css - Css calc:我应该如何正确使用以下公式
- asp.net-core - 是否有具有 lambda 表达式支持的异步/等待扫描/查询/放置/更新的 dynamodb 包装器?
- node.js - 获得猫鼬中实体总数的3个实体的百分比?从猫鼬中获取总数