我有一份用 MS Word 2016 编写的多项选择题考试,问题格式如下:
1. Question text that is usually long enough to cross the entire page
A. Answer Choice 1
B. Answer Choice 2
C. Answer Choice 3
D. Answer Choice 4
E. Answer Choice 5
我想找到一种方法来快速将答案(A:E)转换为列格式以节省空间。
- 然而,问题行必须保持单一(实际上,非) 列,以便它们可以延伸到整个页面。
最终结果看起来与此类似:
1. Question text that is usually long enough to cross the entire page
A. Answer Choice 1 C. Answer Choice 3 E. Answer Choice 5
B. Answer Choice 2 D. Answer Choice 4
2. Next question....
我发现我可以使用查找和替换快速插入分栏符的工具(^n)。
- 例如,查找:
^pC.
;替换:^nC.
但是,这只会将行移动C
到新页面而不是新列。我猜问题是我还没有现成的列格式结构。
有没有办法可以快速将列格式添加到我的所有答案行,但不添加到我的问题行?
答案1
如果您可以接受以下格式...
1. Question text that is usually long enough to cross the entire page
A. Answer Choice 1 B. Answer Choice 2 C. Answer Choice 3
D. Answer Choice 4 E. Answer Choice 5
只需选择五个答案并使用“插入”选项卡和“表格”菜单按钮上的“将文本转换为表格”功能即可实现。然后从打开的对话框中选择 3 列、2 行表格布局。
如果您必须使用您发布的布局,那么您需要一个宏来将五个潜在选项格式化为表格布局。当您选择五个选项然后执行宏时,以下宏将执行此操作。
Sub ConvertToTable()
Dim rng As Word.Range, tbl As Word.Table
Dim iRng As Word.Range
Set rng = Selection.Range
Selection.Collapse Word.WdCollapseDirection.wdCollapseEnd
Set tbl = Selection.Tables.Add(Selection.Range, 2, 3)
Set iRng = rng.Paragraphs(1).Range
iRng.MoveEnd wdCharacter, -1
tbl.Range.rows(1).Cells(1).Range.FormattedText = iRng.FormattedText
Set iRng = rng.Paragraphs(2).Range
iRng.MoveEnd wdCharacter, -1
tbl.Range.rows(2).Cells(1).Range.FormattedText = iRng.FormattedText
Set iRng = rng.Paragraphs(3).Range
iRng.MoveEnd wdCharacter, -1
tbl.Range.rows(1).Cells(2).Range.FormattedText = iRng.FormattedText
Set iRng = rng.Paragraphs(4).Range
iRng.MoveEnd wdCharacter, -1
tbl.Range.rows(2).Cells(2).Range.FormattedText = iRng.FormattedText
Set iRng = rng.Paragraphs(5).Range
iRng.MoveEnd wdCharacter, -1
tbl.Range.rows(1).Cells(3).Range.FormattedText = iRng.FormattedText
rng.Delete
rng.Select
Selection.Delete
End Sub
该宏快速而又粗糙,这意味着可能有更优雅的方式来编码它......但它有效。