Excel精英培训网

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

[已解决]当指定区域,有数据时,执行程序A,指定区域无数据时指定程序B

[复制链接]
发表于 2015-1-13 22:27 | 显示全部楼层 |阅读模式
本帖最后由 yjwdjfqb 于 2015-1-13 22:28 编辑

工作表单元格事件,当指定区域,有数据时,执行程序A,指定区域无数据时指定程序B
Private Sub Worksheet_Change(ByVal Target As Range)
   
   
    If Target.Address = Range("A1").Address Then
        Call 程序A
    End If

End Sub

请老师们帮帮我完善下,谢谢大家了!

当指定区域,有数据时,执行程序A,指定区域无数据时指定程序B.rar (7.12 KB, 下载次数: 3)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2015-1-14 00:00 | 显示全部楼层
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = Range("A1").Address Then
        Application.EnableEvents = False
        If Len(Cells(1, 1)) Then Call 程序A Else 程序B
        Application.EnableEvents = True
    End If
End Sub
2.rar (8.95 KB, 下载次数: 0)
回复

使用道具 举报

发表于 2015-1-14 00:04 | 显示全部楼层
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.     If Target.Address = Range("A1").Address Then
  3.         Call 程序A
  4.       Else
  5.         Call 程序B
  6.     End If
  7. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2015-1-14 00:11 | 显示全部楼层
ppp710715 发表于 2015-1-14 00:04

谢谢老师!

If Target.Address <> "$A$1" Then Exit Sub
如果,我想在增加几个单元格,例如:A1,B2,C3:C5
这些区域主(任意一个)发生变化,激活程序,怎么改呀,谢谢老师了!
回复

使用道具 举报

发表于 2015-1-14 07:32 | 显示全部楼层
yjwdjfqb 发表于 2015-1-14 00:11
谢谢老师!

If Target.Address  "$A$1" Then Exit Sub

Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Application.Intersect(Target, Union(Range("A1"), Range("b2"), Range("C3:C5"))) Is Nothing Then
        Call 程序A
      Else
        Call 程序B
    End If
End Sub

回复

使用道具 举报

 楼主| 发表于 2015-1-14 09:07 | 显示全部楼层
ppp710715 发表于 2015-1-14 07:32
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Application.Intersect(Target, Union( ...



Private Sub Worksheet_Change(ByVal Target As Range)
If (Not Intersect(Target, Range("A1,A2,B2:B4,c3:c7")) Is Nothing) And Target <> "" Then
       Call 程序A
    Else
        Call 程序B
     End If
End Sub


谢谢老师,这样行不呢!
回复

使用道具 举报

发表于 2015-1-14 09:39 | 显示全部楼层
yjwdjfqb 发表于 2015-1-14 09:07
Private Sub Worksheet_Change(ByVal Target As Range)
If (Not Intersect(Target, Range("A1,A2,B2 ...

这样不行,可以自已试试。
回复

使用道具 举报

 楼主| 发表于 2015-1-14 10:07 | 显示全部楼层
ppp710715 发表于 2015-1-14 09:39
这样不行,可以自已试试。

老师你好,我用了上面的代码都不行是什么问题呀,
请老师帮我修改下,谢谢老师了!
单元格事件问题.rar (7.5 KB, 下载次数: 2)
回复

使用道具 举报

发表于 2015-1-14 10:25 | 显示全部楼层    本楼为最佳答案   
你写的程序有误,死循环。已改动。请试试。

单元格事件题.rar (8.13 KB, 下载次数: 3)
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-7 21:07 , Processed in 0.369982 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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