Excel精英培训网

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

[已解决]请老师们帮忙看看,这个上下移动该怎么改?

[复制链接]
发表于 2013-3-23 13:42 | 显示全部楼层 |阅读模式
请老师们帮忙看看,这个上下移动该怎么改?
先谢过老师们!
目的:
当鼠标随意选定“B7至H23”中的任意单元格,点击“上一行”或“下一行”按钮时,单元格光标上移到第7行就不能再往上走,同时跳出提示。反之,点击往下到第23行也不能再下,一样也给予提示。

    ActiveCell.Offset(-1, 0).Select
    ActiveCell.Offset(1, 0).Select
最佳答案
2013-3-23 14:50
闲乐人 发表于 2013-3-23 14:27
谢谢老师,这个该怎么写?我试了下,不行。
确实不会
Private Sub CommandButton1_Click()

Private Sub CommandButton1_Click()
With Sheets("Sheet1")
If ActiveCell.Row >= 23 Then
msgbox "不能下移了"
else if activecell.row <= 7 then
msgbox "不能上移了"
else
    ActiveCell.Offset(-1, 0).Select
    End If
End With
End Sub
QQ截图201.jpg

上下移动.rar

7.37 KB, 下载次数: 5

发表于 2013-3-23 14:13 | 显示全部楼层
用IF ActiveCell.Row判断一下,是否是7和23,是就用MsgBos提示一下
回复

使用道具 举报

发表于 2013-3-23 14:25 | 显示全部楼层
将工作表保护起来,锁定此区之外的单元格,也可录宏。
回复

使用道具 举报

 楼主| 发表于 2013-3-23 14:27 | 显示全部楼层
cbg2008 发表于 2013-3-23 14:13
用IF ActiveCell.Row判断一下,是否是7和23,是就用MsgBos提示一下

谢谢老师,这个该怎么写?我试了下,不行。
确实不会
Private Sub CommandButton1_Click()
With Sheets("Sheet1")
If ActiveCell.Row >= .Range("b7:h23") Then
    ActiveCell.Offset(-1, 0).Select
    End If
End With
End Sub
QQ截图203.jpg
QQ截图202.jpg
回复

使用道具 举报

发表于 2013-3-23 14:32 | 显示全部楼层
闲乐人 发表于 2013-3-23 14:27
谢谢老师,这个该怎么写?我试了下,不行。
确实不会
Private Sub CommandButton1_Click()

犯不着,锁定保护工作表,上移下移左移右移方向键不就好了。
回复

使用道具 举报

 楼主| 发表于 2013-3-23 14:41 | 显示全部楼层
E路人 发表于 2013-3-23 14:32
犯不着,锁定保护工作表,上移下移左移右移方向键不就好了。

就是因为不想用保护,想用限制活动区域。
同时想学方法
回复

使用道具 举报

发表于 2013-3-23 14:46 | 显示全部楼层
本帖最后由 dsjohn 于 2013-3-23 15:10 编辑

改了一下,你看看行不行

上下移动.rar

16.47 KB, 下载次数: 4

回复

使用道具 举报

发表于 2013-3-23 14:50 | 显示全部楼层    本楼为最佳答案   
闲乐人 发表于 2013-3-23 14:27
谢谢老师,这个该怎么写?我试了下,不行。
确实不会
Private Sub CommandButton1_Click()

Private Sub CommandButton1_Click()
With Sheets("Sheet1")
If ActiveCell.Row >= 23 Then
msgbox "不能下移了"
else if activecell.row <= 7 then
msgbox "不能上移了"
else
    ActiveCell.Offset(-1, 0).Select
    End If
End With
End Sub
回复

使用道具 举报

 楼主| 发表于 2013-3-23 15:12 | 显示全部楼层
dsjohn 发表于 2013-3-23 14:46
改了一下,你看看行不行

感谢老师!
    Dim X
    If ActiveCell.Address <> Range("b7:h23").Address Then 'Exit Sub(原文在这里,点按钮没反应)
    ActiveCell.Offset(-1, 0).Select
    X = ActiveCell.Offset(-1, 0).Row
    If X < 6 Then
        MsgBox "已经小于第七行!!"
        ActiveCell.Offset(1, 0).Select
        Exit Sub
    End If(这里是增加的)
    End If
改后达到效果。但想知道    If ActiveCell.Address <> Range("b7:h23").Address Then 'Exit Sub在这里的作用。再次谢谢老师
回复

使用道具 举报

 楼主| 发表于 2013-3-23 15:14 | 显示全部楼层
cbg2008 发表于 2013-3-23 14:50
Private Sub CommandButton1_Click()
With Sheets("Sheet1")
If ActiveCell.Row >= 23 Then

感谢老师!
Private Sub CommandButton1_Click()
With Sheets("Sheet1")
If ActiveCell.Row >= 23 Then
msgbox "不能下移了"
else if activecell.row <= 7 then(这里显示红字,不能运行。请老师看看)
msgbox "不能上移了"
else
    ActiveCell.Offset(-1, 0).Select
    End If
End With
End Sub
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 22:14 , Processed in 0.741911 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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