ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 求助!帮忙修改代码,多谢!!!具体要求详见附件。

[复制链接]

TA的精华主题

TA的得分主题

发表于 2012-8-18 08:05 | 显示全部楼层
本帖最后由 zjdh 于 2012-8-18 09:59 编辑

最后一句没有测试{:soso_e112:}

If R = "" Then Exit Sub
改成
If Not IsArray(R) Then Exit Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-8-19 10:32 | 显示全部楼层
zjdh 发表于 2012-8-18 08:05
最后一句没有测试

If R = "" Then Exit Sub

为何还是不能实现粘贴呢?代码如下:

  1. Sub action_taken()  '按钮粘贴
  2.     On Error GoTo Err
  3.     Set d = New DataObject
  4.     d.GetFromClipboard
  5.     Y = UBound(Split(d.GetText(1), vbCrLf))
  6.     X = UBound(Split(d.GetText(1), vbTab)) / Y
  7.     X1 = Selection.Column
  8.     Y1 = Selection.Row
  9.     Z = ActiveSheet.UsedRange.Rows.Count
  10.     If Y + Y1 > Z Then MsgBox "你粘贴的区域超过了表格区域": Exit Sub
  11.     NM = UCase(ActiveSheet.Name)
  12.    '第一组
  13.     SH1 = Array("SHEET1", "SHEET3")  '第一组工作表
  14.     R1 = Array(7, 8, 10, 11, 12, 14, 15, 16, 18, 19, 20) '第一组不可粘贴列号
  15.     For i = 0 To UBound(SH1)
  16.         If SH1(i) = NM Then R = R1: Exit For
  17.     Next
  18.     '第二组
  19.     SH2 = Array("SHEET2", "SHEET4")
  20.     R2 = Array(10, 11, 12, 14, 15, 16, 18, 19, 20)
  21.     For i = 0 To UBound(SH2)
  22.         If SH2(i) = NM Then R = R2: Exit For
  23.     Next
  24.     '........其他组
  25.     If Not IsArray(R) Then Exit Sub
  26.     For i = X1 To X + X1
  27.         For j = 0 To UBound(R)
  28.             If R(j) = i Then MsgBox "你选择的区域不得粘贴!": Exit Sub
  29.         Next
  30.     Next
  31.     Selection.PasteSpecial Paste:=xlPasteValues
  32.     Exit Sub
  33. Err:
  34.     If Application.CutCopyMode = False Then
  35.         MsgBox "您还没复制,或请重新复制。"
  36.     Else
  37. MsgBox "如果粘贴整行或整列,请注意粘贴位置;" & Chr(10) & "另外,本命令在剪切模式下不可使用。"
  38.     End If
  39. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2012-8-19 16:36 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
算了,给你一个附件自己试吧!
打开文件后,菜单上多出一个“小工具”,有“粘贴剪贴板”命令,执行我的宏。
粘贴.rar (13.47 KB, 下载次数: 13)

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-8-22 23:41 | 显示全部楼层
zjdh 发表于 2012-8-19 16:36
算了,给你一个附件自己试吧!
打开文件后,菜单上多出一个“小工具”,有“粘贴剪贴板”命令,执行我的宏 ...

觉得您的程序也不错啊。
看看我的附件吧。我的意思是想设置一个快捷键,通过Ctrl+Q或者右键可以达到同样粘贴的效果。要不您费费心,给帮忙改改?觉得程序有些复杂,如果能简单点就好了。
另外,我觉得您设计的这个“工具箱”也是个不错的东西,能否把两者都融入到这个程序里并且互不干扰?
谢谢啦!!!!

问题附件.rar

16.76 KB, 下载次数: 3

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-8-25 00:45 | 显示全部楼层
zjdh 发表于 2012-8-19 16:36
算了,给你一个附件自己试吧!
打开文件后,菜单上多出一个“小工具”,有“粘贴剪贴板”命令,执行我的宏 ...

我的附件您老看了吗?嘿嘿。能够理解我的意思吗?O(∩_∩)O~

TA的精华主题

TA的得分主题

发表于 2012-8-26 13:55 | 显示全部楼层
短信收到,存在问题:
1. 你的文件是先将本文件驻留在Excel启动目录下,需要关闭程序后重新启动Excel程序,才会被打开。
2. 我的宏中有第一组工作表、第二组工作表...,各工作表的名称必须与其一致,否则无法执行相关命令。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-8-27 22:35 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 tsingcea 于 2012-8-27 23:14 编辑
zjdh 发表于 2012-8-26 13:55
短信收到,存在问题:
1. 你的文件是先将本文件驻留在Excel启动目录下,需要关闭程序后重新启动Excel程序, ...


果然神人也!!!!!!!
厉害。我改了名字为实际的工作表名之后,一切OK!!!
太感谢您啦!!!!
我以为可以使用系统默认的名称呢,就好像在工程里面默认的名称呢。原来必须是实际可见的工作表名。原来如此。太感谢您啦。
我觉得正如您所说,这个功能的实现必须要启动驻留在Excel启动目录下的文件才可,这有些不太方便,因为这样造成了打开别的Excel文件也会启动这一文件,有没有办法可以在实现同样功能的情况下,不驻留在启动目录下?如果能的话,就非常完美了,如果不能,就目前情况我也没有什么遗憾了。太感谢您的大力支持啦!!
感谢!!!

TA的精华主题

TA的得分主题

发表于 2012-8-28 15:04 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
1.那就将驻留程序消除,要用时打开文件(可做成加载宏),不过要修改一下宏。
2.你说的让工程里默认也可以,也得修改宏,按规定确定允许粘贴范围。
宏确定工作表有3个方法:
①. 工作表名称(我采用的,主要考虑不要张冠李戴);
②. 工作表的codename(例:sheet1、sheet2...),在VE中可以看到;
③. 工作表在工作簿中排列顺序(1、2、3..)。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-8-28 23:02 | 显示全部楼层
zjdh 发表于 2012-8-28 15:04
1.那就将驻留程序消除,要用时打开文件(可做成加载宏),不过要修改一下宏。
2.你说的让工程里默认也可以 ...

1、您说的“要用时打开文件”是什么意思?
2、您说的VE是个啥?怎么看?

TA的精华主题

TA的得分主题

发表于 2012-8-29 09:03 | 显示全部楼层
tsingcea 发表于 2012-8-28 23:02
1、您说的“要用时打开文件”是什么意思?
2、您说的VE是个啥?怎么看?

1. “要用时打开文件”指操作文件,也就是被你驻留的文件(改写),但会随着应用程序关闭而关闭。
2. VE即VB编辑器
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 00:42 , Processed in 0.034714 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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