Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3282|回复: 3

怎样用VBA代码禁止双击行(或列)号选中该行(或列)

[复制链接]
发表于 2012-5-26 21:21 | 显示全部楼层 |阅读模式
下面的代码可以让选择一整行时自选中A6单元格(即禁止选中整行),但如果双击行号依然可以选中整行。怎样才能禁止双击行(或列)号时选中该行(或列)呢?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Selection.Columns.Count = 256 Then
        Range("A6").Select
    End If
End Sub

发表于 2012-5-27 19:00 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2012-5-27 21:04 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2012-5-30 13:47 | 显示全部楼层
本帖最后由 lengfeng910 于 2012-5-30 14:33 编辑

已解决,其实在中间加一个msgbox即可.代码如下,请坛内高人批评指正.
下列代码实现功能:只能依次在A、B、C列输入数据,其他的单元格或行列均不可选。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim mrg As Range
    Dim row As Long
    Static k As Integer
    k = k + 1
    If k > 1 Then k = 0: End
    row = Range("A65536").End(xlUp).row
    If Range("B" & row) = "" Then
        Set mrg = Range("B" & row)
    ElseIf Range("C" & row) = "" Then
        Set mrg = Range("C" & row)
    Else
        Set mrg = Range("A" & row + 1)
    End If
    If Target(1, 1).Address <> mrg.Address Then
        MsgBox "当前只能选" & Replace(mrg.Address, "$", "") & "单元格"
        mrg.Select
    ElseIf Target.Columns.Count > 1 Then
        MsgBox "当前只能选" & Replace(mrg.Address, "$", "") & "单元格"
        mrg.Select
    else
        k=0
    End If
End Sub
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-6-4 22:49 , Processed in 0.249062 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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