一、以下是小弟目前在使用的Konggs版主以前制作的“超快”宏,小弟作了一点小小的修补。建议楼主将代码放在Normal中,并在“工具→自定义→键盘→宏”里为之指定快捷键。
使用方法:①选定你需要删除不必要格式信息的文本(注意,原始文本若带图片,用此宏复制粘贴后无法保留图片,图片须手工逐个粘贴),原始文本可以是网页上的材料,也可以是楼主附件里的材料。②复制(当然也可以是“剪切”)。③将光标移到你需要粘贴的地方,运行该宏,或者按你为该宏指定的快捷键,实现粘贴。④每段的段尾有时会有空格,请选定全文,按工具栏上的“居中”按钮,再按“两端对齐”按钮,将会去除段首与段尾所有制表符与空格等等冗余信息。
Sub Konggs_超快() Dim MyData As DataObject Dim acon As String Set MyData = New DataObject '创建一个数据对象 MyData.GetFromClipboard '将数据复到到DataObject acon = MyData.GetText(1) '只取得文本格式 替换空行 (acon) Selection.MoveRight unit:=wdCharacter, Count:=1 '在粘贴完内容后将光标移往粘贴内容的下一行by雨雪霏霏 Selection.TypeBackspace '用向前删除键删除空行by雨雪霏霏 End Sub Function Konggs替换空行(a1) Dim b1, c1 Dim d1 As String, aString As String Dim atim As Long atim = Timer Application.ScreenUpdating = False b1 = Replace(a1, Chr(11), Chr(13)) b1 = Split(a1, Chr(13)) '变为数组 For Each c1 In b1 '在数组中循环 c1 = Replace(c1, Chr(10), "") c1 = LTrim(c1) '去掉前后的空格,选择性粘贴后,没有软回车 d1 = Replace(c1, Chr(9), "") '如果全部是制表符 If d1 = "" Then '不作处理 Else aString = aString + c1 + Chr(13) '累加 End If Next Selection.InsertBefore aString '光标后插入字符串 Application.ScreenUpdating = True End Function
二、至于翻译的排版,小弟建议楼主用表格来实现。只要把表格边框设为无,就可以排出理想的版面了。
另,关于“删除空行”问题,请看Konggs版主的置顶帖《常见问题》,里头很是精彩。 |