前端开发入门到精通的在线学习网站

网站首页 > 资源文章 正文

Excel VBA 常用技巧06-禁用单元格拖放功能\自动进入编辑状态

qiguaw 2024-10-19 07:51:29 资源文章 32 ℃ 0 评论

技巧1 单元格自动进入编辑状态

当光标选择单元格时无需双击,自动进入编辑状态,如下面的代码所示。

#001 Private Sub Worksheet_SelectionChange(ByVal Target As Range)

#002 If Target.Column = 3 And Target.Count = 1 Then

#003 If Target <> "" Then

#004 Application.SendKeys "{F2}"

#005 End If

#006 End If

#007 End Sub

代码解析:

工作表的SelectionChange事件过程,当选择工作表C列有数据单元格时自动进入编辑状态。

第2、3行代码设置SelectionChange事件的触发条件,利用Target参数的Column属性和Count属性将事件的触发条件限制在C列并且只有在选择一个单元格时才发生。

第4行代码使用SendKeys方法发送一个F2键到应用程序,等同于选择单元格后按F2键,使单元格进入编辑状态。关于SendKeys方法请参阅技巧12-4。

技巧2 禁用单元格拖放功能

在工作表中可以拖放单元格右下角的小十字对单元格内容进行复制等操作,如果不希望用户进行此操作可以禁用单元格拖放功能,如下面的代码所示。

#001 Private Sub Worksheet_SelectionChange(ByVal Target As Range)

#002 If Not Application.Intersect(Target, Range("A1:A15")) Is Nothing Then

#003 Application.CellDragAndDrop = False

#004 Else

#005 Application.CellDragAndDrop = True

#006 End If

#007 End Sub

代码解析:

工作表的SelectionChange事件过程,在指定的单元格区域禁用单元格的拖放功能。

CellDragAndDrop 属性设置单元格的拖放功能,如果允许使用单元格拖放功能,则该值为True。

为了不影响其他工作表,应在工作表的Deactivate事件中恢复单元格的拖放功能,如下面的代码所示。

#001 Private Sub Worksheet_Deactivate()

#002 Application.CellDragAndDrop = True

#003 End Sub

代码解析:

工作表的Deactivate事件过程,恢复单元格的拖放功能。

工作表的Deactivate事件当工作表从活动状态转为非活动状态时产生,语法如下:

Private Sub object_Deactivate()

参数object代表Worksheet对象。

当选择工作表“Sheet1”的A1:A15单元格时将禁用单元格的拖放功能,如图 101所示。

图 101 禁用单元格的拖放功能

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表