MS Word 2016。
我有一个包含数百个表格的大型文档。我想更改所有表格的属性以取消勾选“首选宽度”选项。
有没有办法选择所有表格以应用此更改?还是我必须手动选择它们(“全选”不起作用,因为它还会突出显示禁用表格属性的普通文本)?
答案1
不幸的是,无法使用一些巧妙的快捷方式一次性选择所有表格。幸运的是,即使是初学者也可以使用简单的宏,几分钟内就可以完成这项工作。
对于 Word 2010 及更高版本,默认情况下应已显示“开发人员”选项卡,但如果没有,则可以通过其集成功能区编辑器访问。在这些应用程序中,功能区编辑器可从文件>选项>自定义功能区. 勾选开发人员复选框。
完成后,点击开发人员标签 >宏按钮
在新窗口中,在显示的文本框中输入“Autofit_All_Tables”,然后单击创建按钮来创建一个新的宏。
将以下代码粘贴到白色文本区域中,完全替换现有代码。
Sub Autofit_All_Tables()
Application.ScreenUpdating = False
Dim Tbl As Table
For Each Tbl In ActiveDocument.Tables
Tbl.AutoFitBehavior (wdAutoFitWindow)
Tbl.AllowAutoFit = True
Next
Application.ScreenUpdating = True
Application.ScreenRefresh
MsgBox "Done", vbOKOnly
End Sub
然后单击绿色的运行箭头(位于图中红色框内)。
您应该会看到一个小窗口,上面写着“完成”。关闭 VBA 开发人员窗口,然后坐下来,对自己感到满意。
注意:如果要将宽度设置为边距之间宽度的百分比,请创建一个名为“Set_Global_Table_Width”的宏,并粘贴以下代码。此处宽度设置为 100(即 100%),但您可以在将其粘贴到上面显示的 Word VBA 开发人员宏框后将其更改为您想要的任何百分比。
Sub Set_Global_Table_Width()
Dim pT As Word.Table
For Each pT In ActiveDocument.Tables
pT.PreferredWidthType = wdPreferredWidthPercent
pT.PreferredWidth = 100
Next
MsgBox "Done"
End Sub
答案2
就像使用光标选择整行一样,转到页面的最左侧,到页边距部分,直到光标向右倾斜,比如说 45 度,然后在第一次选择后按住控制按钮来选择/突出显示其他行。这基本上是在整个页面上选择多行,我刚刚在看过很多 vb 脚本论坛建议(不实用)后发现它也适用于表格。我现在正在编辑一个 21 页的表格 MSDS。