excel剪切、复制和粘贴操作,使它们不会破坏已设置的单元格格式

时间:2023-01-25 22:03:24 

基于表格的用户接口的最大问题是:由于采用Excel黙认方式来处理数据的剪切、复制、粘贴以及拖放,而数据输入表中大多数用于编辑的单元格都被指定了特定样式、数据验证或条件格式,因此Excel默认的复制/粘贴会覆盖掉被粘贴单元格中的各种格式,同时Excel默认的剪切方式会将被剪切单元格的格式设置为“通用样式”。Excel的拖放功能也与剪切/复制类似,同样会破坏单元格中的格式。
为避免发生上述情况,可以屏蔽Excel的拖放功能,并编写自已的剪切、复制和粘贴程序。
Dim mbCut As Boolean
Dim mrngSource As Range

‘初始化单元格的复制-粘贴
Public Sub InitCutCopyPaste()
Application.OnKey “^X”, “DoCut”
Application.OnKey “^x”, “DoCut”
Application.OnKey “+{DEL}”, “DoCut”

Application.OnKey “^C”, “DoCopy”
Application.OnKey “^c”, “DoCopy”
Application.OnKey “^{INSERT}”, “DoCopy”

Application.OnKey “^V”, “DoPaste”
Application.OnKey “^v”, “DoPaste”
Application.OnKey “+{INSERT}”, “DoPaste”

Application.OnKey “{ENTER}”, “DoPaste”
Application.OnKey “~”,”DoPaste”

‘关闭拖放操作
Application.CellDragAndDrop = False
End Sub

‘处理剪切单元格
Public Sub DoCut()
If TypeOf Selection Is Range Then
mbCut = True
Set mrngSource = Selection
Selection.Copy
Else
Set mrngSource = Nothing
Selection.Cut
End If
End Sub

‘处理复制单元格
Public Sub DoCopy()
If TypeOf Selection Is Range Then
mbCut = False
Set mrngSource = Selection
Else
Set mrngSource = Nothing
End If

Selection.Copy
End Sub

‘处理粘贴单元格
Public Sub DoPaste()
If Application.CutCopyMode And Not mrngSource Is Nothing Then
Selection.PasteSpecial xlValues
If mbCut Then
mrngSource.ClearContents
End If

Application.CutCopyMode = False
Else
ActiveSheet.Paste
End If
End Sub
将上述代码复制到VBE中,试着运行并熟悉其原理。可以将上述程序嵌入到你正在开发的应用程序的合适位置,结合实际稍作调整,使应用程序更健壮。

标签:excel图表制作,excel常用函数,excel数据透视表,Excel教程
0
投稿

猜你喜欢

  • nvidia控制面板dota2怎么设置?(控制面板dota2分辨率设置)

    2023-07-04 12:28:17
  • ppt如何插入excel文档的教程

    2023-03-05 13:43:08
  • Temp文件夹可以删除吗?

    2023-11-25 00:57:08
  • 在Excel中怎么拆分合并单元格?

    2023-07-14 20:11:31
  • 在word尾部空格的地方怎么加入下划线?

    2022-11-23 06:04:18
  • ADDRESS函数

    2023-08-19 22:15:12
  • 学习下excel服务器中数据库备份和恢复的方法

    2023-10-06 14:29:51
  • win10打印机后台程序服务没有运行该如何解决?

    2022-07-25 16:25:58
  • excel怎么保留小数点后两位

    2023-02-17 19:22:47
  • 完整介绍Excel End(xlUp).Row

    2022-11-24 15:24:23
  • word中空格变成点或方框怎么解决?

    2023-03-02 02:04:57
  • Win7提示0xt000000f蓝屏代码怎么办?0xt000000f蓝屏代码的解决方法

    2022-01-31 10:28:27
  • Wps如何在表格中插入图表?Wps在表格中插入图表的方法

    2023-02-19 04:56:24
  • wps表格共享功能如何使用

    2023-02-13 18:28:40
  • Windows 10新正式版17134.137推送:修复多个视频播放BUG

    2023-07-01 01:14:49
  • PPT中怎么自定义词典? PPT添加常用词的方法

    2022-03-23 09:45:13
  • 如何设置Excel启动时自动打开文件

    2022-05-19 00:26:26
  • win8安装iTunes出现 被配置前安装程序错误的解决办法

    2023-10-24 16:53:13
  • ​金舟录屏大师如何更改视频的输出格式和画质

    2023-07-12 00:03:57
  • Win10桌面右下角快速查看日期的方法

    2023-10-31 00:15:31
  • asp之家 电脑教程 m.aspxhome.com