ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 11076|回复: 6

[求助]自动实现以无格式文本粘贴的一个宏

[复制链接]

TA的精华主题

TA的得分主题

发表于 2007-5-7 23:36 | 显示全部楼层 |阅读模式

看得网页中感兴趣的内容,我喜欢复制下来用word保存,这涉及到选择性粘贴的问题,一般希望用无文本格式来保存,正常情况下有如下几步操作:编辑||选择性粘贴|无文本格式。我想在工具栏上直接放置一个名为“复制网页”的按钮,每次复制了网页,在点击“复制网页”按钮,网页上的内容就一无文本格式复制到word中了。利用自己录制的宏制作按钮成功以后,达不到自己的要求,看到如下宏代码:

Sub 复制网页()

'

' 复制网页 Macro

' 宏在 2007-5-7 uuyy录制

'

    Selection.PasteAndFormat (wdPasteDefault)

End Sub

 

可以发现Selection.PasteAndFormat的参数为wdPasteDefault,望文生义进行判断,上述参数表示默认的格式粘贴,也就是与control+v的效果完全一样,所以无法达到我的要求,请问以文本格式粘贴的参数是什么?

TA的精华主题

TA的得分主题

发表于 2007-5-7 23:41 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
不错!

TA的精华主题

TA的得分主题

发表于 2007-5-8 09:39 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2007-5-8 10:32 | 显示全部楼层

家园中关于“无格式粘贴”的一些代码

QUOTE:
以下是引用tuotuohe在2007-5-7 23:36:07的发言:

看得网页中感兴趣的内容,我喜欢复制下来用word保存,这涉及到选择性粘贴的问题,一般希望用无文本格式来保存,…………

可以发现Selection.PasteAndFormat的参数为wdPasteDefault,望文生义进行判断,上述参数表示默认的格式粘贴,也就是与control+v的效果完全一样,所以无法达到我的要求,请问以文本格式粘贴的参数是什么?

以下是konggs版主的一个宏代码(见《选择性粘贴的快捷键——无格式文本的》7楼),请tuotuohe兄参考:

QUOTE:
Sub 选择性粘贴()
Selection.pasteandformat Type:=wdFormatPlainText '粘贴为无格式的纯文本文字
End Sub
‘把此代码放到VBA中,然后设置这个的快捷键即可。


以下是守柔版主的四个宏代码(见《如何将[选择性粘贴]中[无格式文本]填加到鼠标右键菜单中呢?3楼):

QUOTE:

请楼主参考以下代码:

Sub MyControl()
'直接将选择性粘贴命令加入右键
Dim NewButton As CommandBarButton
Set NewButton = Application.CommandBars("text").Controls.Add(msoControlButton, ID:=755)
End Sub

  

Sub ControlsAdd()
'为右键新增一个命令
Dim MyControl As CommandBarControl
Set MyControl = Application.CommandBars("text").Controls.Add(Type:=msoControlButton)
With MyControl
.FaceId = 1250
.OnAction = "MySub"
.Caption = "无格式文本"
End With
End Sub

  

Sub mysub()
'以无格式文本形式进行粘贴剪贴板上内容,并在插入点插入
Selection.Collapse Direction:=wdCollapseStart
Selection.Range.PasteSpecial DataType:=wdPasteText
End Sub

  

Sub resetcontrol()
'恢复原有设置
Application.CommandBars("text").Reset
End Sub

建议使用第一个宏。
第二个宏需和第三个宏配套
第四个宏为恢复原有右键(光标位于文本)的恢复。


对于处理网文,守柔版主写有极具实用价值的“粘贴文本并删除空行”代码(见《[分享]添加自定义命令按钮 》),请tuotuohe兄参考使用。


另外,在konggs版主的置顶帖《[整理贴]新手提问》里还有许多关于网文处理(如删除空行)方面的精彩链接,tuotuohe兄有兴趣的话不妨去看看。

[此贴子已经被作者于2007-5-8 10:38:50编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-5-8 10:34 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

感谢chylhr及时告知,使用wdFormatPlainText成功地实现了我的要求。

随即又有两个问题:

1 为什么直接录制的时候,获得的参数总是wdPasteDefault而不是wdFormatPlainText?

2  要获得文本格式粘贴的参数chylhr告知为wdPasteDefault,这样的参数是如何获取的?

谢谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-5-8 10:53 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

感谢雨兄热情而详细的解答,我回复上面的帖子时没有刷新页面,所以没有看到雨兄的解答,现在发现很多问题,此论坛上早已经解决,而我没有搜索,不过是一种浪费注意力的重复。

再次表示感谢!

TA的精华主题

TA的得分主题

发表于 2007-5-9 08:51 | 显示全部楼层
QUOTE:
以下是引用tuotuohe在2007-5-8 10:34:45的发言:

感谢chylhr及时告知,使用wdFormatPlainText成功地实现了我的要求。

随即又有两个问题:

1 为什么直接录制的时候,获得的参数总是wdPasteDefault而不是wdFormatPlainText?

2  要获得文本格式粘贴的参数chylhr告知为wdPasteDefault,这样的参数是如何获取的?

谢谢!

1、我想这是宏录制功能的缺陷,可以参看konggs版主的贴子http://club.excelhome.net/viewthread.php?tid=201128&px=0

2、将光标定位至PasteAndFormat,点功能键F1即可。

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 23:36 , Processed in 0.038414 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表