Excel精英培训网

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

[已解决]写了一段简单的代码,需要修改一下,求助

[复制链接]
发表于 2013-6-22 10:28 | 显示全部楼层 |阅读模式
实现一个判断,然后进行提示,我比较菜,写的代码只能对一个单元格起作用,但其时每行数据都要判断时怎么办呢?

Private Sub Worksheet_Calculate()
    Dim i
    If Range("D3") < Range("C3") And Range("E3") = "" Then
        i = MsgBox("请注意检查", 4, "警告")
        If i = vbNo Then Application.Quit   '按下否键,直接退出EXCEL系统
    End If
End Sub
最佳答案
2013-6-22 11:36
VBBOM 发表于 2013-6-22 11:19
前半段判断后清除的可以用了,后半段用做提示的代码没有作用,符合条件后没反应,不知是怎么回事?
  1. Private Sub CommandButton1_Click()
  2.     For i = 3 To 10
  3.         If Range("k" & i) >= Range("j" & i) Then
  4.             Range("m" & i).ClearContents
  5.         End If
  6.     Next i
  7. End Sub
  8. Private Sub Worksheet_Calculate()
  9.     Dim i
  10.     y = False
  11.     For x = 3 To 7
  12.         If Range("k" & x) < Range("j" & x) And Range("m" & x) = "" Then
  13.             y = True
  14.             Exit For
  15.         End If
  16.     Next x
  17.     If y = True Then
  18.         i = MsgBox("后台检测到库存过低,需要补仓", 4, "警告")
  19.         If i = vbNo Then Application.Quit   '按下否键,直接退出EXCEL系统
  20.     End If
  21. End Sub
复制代码
发表于 2013-6-22 10:46 | 显示全部楼层
回复

使用道具 举报

发表于 2013-6-22 10:50 | 显示全部楼层
把行设为变量,用循环判断                                                   
回复

使用道具 举报

 楼主| 发表于 2013-6-22 10:55 | 显示全部楼层
看我写的比较笨的代码,谁来给我优化一下:

Private Sub CommandButton1_Click()
If Range("k3") >= Range("j3") Then
       Range("m3").ClearContents
End If
If Range("k4") >= Range("j4") Then
       Range("m4").ClearContents
End If
If Range("k5") >= Range("j5") Then
       Range("m5").ClearContents
End If
If Range("k6") >= Range("j6") Then
       Range("m6").ClearContents
End If
If Range("k7") >= Range("j7") Then
       Range("m7").ClearContents
End If
If Range("k9") >= Range("j9") Then
       Range("m9").ClearContents
End If
If Range("k10") >= Range("j10") Then
       Range("m10").ClearContents
End If
End Sub


Private Sub Worksheet_Calculate()
    Dim i
    If Range("k3") < Range("j3") And Range("m3") = "" Or Range("k4") < Range("j4") And Range("m4") = "" Or Range("k5") < Range("j5") And Range("m5") = "" Or Range("k6") < Range("j6") And Range("m6") = "" Or Range("k7") < Range("j7") And Range("m7") = "" Then
        i = MsgBox("后台检测到库存过低,需要补仓", 4, "警告")
        If i = vbNo Then Application.Quit   '按下否键,直接退出EXCEL系统
    End If
End Sub
回复

使用道具 举报

发表于 2013-6-22 11:04 | 显示全部楼层
VBBOM 发表于 2013-6-22 10:55
看我写的比较笨的代码,谁来给我优化一下:

Private Sub CommandButton1_Click()
  1. Private Sub CommandButton1_Click()
  2.     For i = 3 To 10
  3.         If Range("k" & i) >= Range("j" & i) Then
  4.             Range("m" & i).ClearContents
  5.         End If
  6.     Next i
  7. End Sub

  8. Private Sub Worksheet_Calculate()
  9.     Dim i
  10.     y = False
  11.     For x = 3 To 7
  12.         If Range("k" & x) < Range("j" & x) And Range("m" & x) = "" Then
  13.         Else
  14.             y = True
  15.             Exit For
  16.         End If
  17.     Next x
  18.     If y = False Then
  19.         i = MsgBox("后台检测到库存过低,需要补仓", 4, "警告")
  20.         If i = vbNo Then Application.Quit   '按下否键,直接退出EXCEL系统
  21.     End If
  22. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2013-6-22 11:19 | 显示全部楼层
那么的帅 发表于 2013-6-22 11:04

前半段判断后清除的可以用了,后半段用做提示的代码没有作用,符合条件后没反应,不知是怎么回事?
回复

使用道具 举报

发表于 2013-6-22 11:36 | 显示全部楼层    本楼为最佳答案   
VBBOM 发表于 2013-6-22 11:19
前半段判断后清除的可以用了,后半段用做提示的代码没有作用,符合条件后没反应,不知是怎么回事?
  1. Private Sub CommandButton1_Click()
  2.     For i = 3 To 10
  3.         If Range("k" & i) >= Range("j" & i) Then
  4.             Range("m" & i).ClearContents
  5.         End If
  6.     Next i
  7. End Sub
  8. Private Sub Worksheet_Calculate()
  9.     Dim i
  10.     y = False
  11.     For x = 3 To 7
  12.         If Range("k" & x) < Range("j" & x) And Range("m" & x) = "" Then
  13.             y = True
  14.             Exit For
  15.         End If
  16.     Next x
  17.     If y = True Then
  18.         i = MsgBox("后台检测到库存过低,需要补仓", 4, "警告")
  19.         If i = vbNo Then Application.Quit   '按下否键,直接退出EXCEL系统
  20.     End If
  21. End Sub
复制代码
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-7 14:59 , Processed in 0.286547 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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