录入单词前的基础工作
插入表格
为了把中英文对照以更便于查看的样式呈现,决定使用表格,一边英文一边中文。由于编写博客使用的Markdown(一种很简洁的标记语言)并不支持表格,只能使HTML中的<table>标签。
<table>
<tr>
<td>Apple</td>
<td>苹果</td>
</tr>
<tr>
<td>Peach</td>
<td>桃子</td>
</tr>
</table>
一般是得<table border=”1”>,才加上边框,但是我这里加不加都一样。
效果如下:
Apple | 苹果 |
Peach | 桃子 |
虽然字有点小,但也可以用。
Word中的“宏”
打文档时肯定没人想直接带着标签生打,就算提前复制粘贴好标签再填进去也有点麻烦。
为了省事,我打算用宏来把左面的转换成右面的。
Apple苹果Peach桃子 |
<tr><td>Apple |
这样之后上下再加个table标签就可以使了。虽然这种排法不好看标记之间的关系,但是更方便宏的编写。
宏就是通过模拟按键来实现各种操作,录制一个宏就可以使用了。下面放一段代码,是点一下换一下的。
一下一次(摸索过程,不是最优的方法,有bug)
代码:
Sub 每两行变一行HTML表格()
'
' 每两行变一行HTML表格 宏
'
'
Selection.TypeText Text:="<tr><td>"
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.MoveUp Unit:=wdParagraph, Count:=1
Selection.TypeText Text:="</td><td>"
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.MoveUp Unit:=wdParagraph, Count:=1
Selection.TypeParagraph
Selection.MoveUp Unit:=wdLine, Count:=1
Selection.TypeText Text:="</td></tr>"
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.MoveUp Unit:=wdParagraph, Count:=1
End Sub
使用方法:
- 点击录制宏
- 选择指定到按钮(选键盘也可以,本文以指定到按钮为例)
- 选中你所创建的宏,点击添加,加入到快捷工具栏
- 点击停止录制
- 点击查看宏
- 选中宏并点击编辑
- 用上面的代码将原来的代码替换
- 保存并关掉编辑窗口
- 将光标移动你要开始转换的地方(一闪一闪的那个光标)
- 点击刚刚所创建的按钮
原理:
- 输入“<tr><td>”
- 光标下移一行(按键盘上向下的下箭头)
- 光标移到此行开头(按CTRL+向上的箭头)
- 输入“</tr><td>”
- 光标下移一行
- 光标移到此行开头
- 换行
- 光标上移一行
- 输入“</td></tr>”
- 光标下移一行
- 光标移到此行开头
从原理可以看出它不支持超过一行的文本,够用就行了呗😜。
这里贴出快捷键的来源:Word 中的键盘快捷方式,可以自己再探索一下宏的其他应用。
改进版(重新写的,又用了一种方法)
参考:什么是「宏」? 为什么以前计算机老师说不要用 word 中的「宏」?
上面的方法不太好,不支持超过一行的文本,还不支持自动化,所以又摸索了一下,下面是改进版。上面的也算我摸索的过程,就不删掉了。
一下一次改进版代码:
Sub 每两行变一行HTML表格一下一次()
'
' 每两行变一行HTML表格一下一次 宏
'
Selection.TypeText Text:="<tr><td>"
Selection.MoveDown Unit:=wdParagraph, Count:=1
Selection.TypeText Text:="</td><td>"
Selection.MoveDown Unit:=wdParagraph, Count:=1
Selection.TypeText Text:="</td></tr>"
Selection.TypeParagraph
End Sub
自动版代码:
Sub 每两行变一行HTML表格()
'
' 每两行变一行HTML表格 宏
'
Selection.MoveDown Unit:=wdScreen, Count:=1, Extend:=wdExtend
Do While Len(Selection) > 2
Selection.MoveLeft Unit:=wdCharacter, Count:=1
Selection.TypeText Text:="<tr><td>"
Selection.MoveDown Unit:=wdParagraph, Count:=1
Selection.TypeText Text:="</td><td>"
Selection.MoveDown Unit:=wdParagraph, Count:=1
Selection.TypeText Text:="</td></tr>"
Selection.TypeParagraph
Selection.MoveDown Unit:=wdScreen, Count:=1, Extend:=wdExtend
Loop
End Sub
一下一次原理:
- 输入“<tr><td>”
- 光标移到下一行开头(按CTRL+向下的箭头)
- 输入“</tr><td>”
- 光标移到下一行开头
- 输入“</tr></td>”
- 换行
自动版原理:
对比一下代码的差别,找出实现自动的代码。
Selection.MoveDown Unit:=wdScreen, Count:=1, Extend:=wdExtend
选择从当前位置到当前行末尾之间的内容。(Shift+End)Do While Len(Selection) > 2 & loop
Len(Selection):选中的字符数
Do While <条件> …… loop:只要满足条件,就重复执行两者间的指令Selection.MoveLeft Unit:=wdCharacter, Count:=1
模拟小键盘“<-”建,光标不动,取消选中。
1.选择从当前位置到当前行末尾之间的内容
2.当内容长度大于2(不是空的)重复执行:
——2.1光标不动,取消选中
——2.2运行一下一次版
——2.3选择从当前位置到当前行末尾之间的内容
后话
这个可以把字填进网页的表格,复制网页的表格再粘贴在Word内,便实现了字到表的转变。(虽然很简陋)😂