Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
12
返回列表 发新帖
楼主: xlcywj

[已解决]关闭窗体后为什么其中的提示代码不能中断

[复制链接]
发表于 2016-9-4 14:56 | 显示全部楼层
重复的原因是Unload UserForm3会触发EXIT事件,再次运行代码。
回复

使用道具 举报

 楼主| 发表于 2016-9-4 15:10 | 显示全部楼层
su45 发表于 2016-9-4 14:55
改为Private Sub TextBox5_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
是不会重复了。

谢谢老师,前面是我按你的方法改错地方了,却回复你说没解决,谢谢你再次跟帖,看了后再仔细修改,问题解决,再次感谢老师的无私帮助,有了你们,属于菜鸟类别的我们看到了希望
回复

使用道具 举报

 楼主| 发表于 2016-9-4 16:02 | 显示全部楼层
su45 发表于 2016-9-4 14:56
重复的原因是Unload UserForm3会触发EXIT事件,再次运行代码。

SU45老师,不好意思,按你的方法修改事件后,发现在窗体输入数据时不能为空的判断无效了,这点很重要,如何在你给出的方案中实现
回复

使用道具 举报

发表于 2016-9-4 17:47 | 显示全部楼层
钻进牛角尖里了,既然要关闭UserForm3,也就说取消本此操作了,那不干脆停止代码运行,用 End 直接终止代码运行就行了。
回复

使用道具 举报

发表于 2016-9-4 17:50 | 显示全部楼层
本帖最后由 su45 于 2016-9-4 18:50 编辑

Private Sub TextBox5_EXIT(ByVal Cancel As MSForms.ReturnBoolean)
'TextBox5.SetFocus
'BC段最高收盘价格判断
'TextBox5.Text:BC段最高收盘价输入文本框  对应工作簿中的290列

Dim A点价格, B点价格, C点价格, BC段最高收盘价 As String
A点价格 = TextBox1.Text
B点价格 = TextBox2.Text
C点价格 = (TextBox1.Text - TextBox2.Text) / 2 + TextBox2.Text
E点价格 = (TextBox1.Text - TextBox2.Text) * 0.75 + TextBox2.Text
BC段最高收盘价 = TextBox5.Text


If TextBox5.Text = "" Then
   'TextBox5.SetFocus
   MsgBox "该参数涉及到计算值,不能为空"
1: BC段最高收盘价 = InputBox("请输入BC段最高收盘价格")

   If BC段最高收盘价 = "" Then
       GoTo 1
   Else
          TextBox5.Text = BC段最高收盘价
          'GoTo 2
          If TextBox5.Text >= E点价格 Then  'BC段最高收盘价大于等与E点价格 BC段无效判断代码
              Dim BC_5 As Long
              Dim BC_6 As Long
              BC_5 = MsgBox("BC段最高收盘价超过AB段幅度75%计算价,属于BC段无效,建仓形态要素不达标。请审核填入的参数,如输入无误,点击“确定”按钮,结束建仓3买位形态判断。重新输入选“否”", vbYesNo)
                 If BC_5 = vbNo Then
                    GoTo 1
                 Else
                     For BC_6 = 8 To Range("P500").End(xlUp).Row
                         If Cells(BC_6, 17) = "建仓" And Cells(BC_6, 294) = "" Then
                            Cells(BC_6, 294) = "BC段无效"   'LABEL15:文本标题,内容:BC段完成参数输入,有效!
                            Cells(BC_6, 17) = ""
                            Cells(BC_6, 17) = "建仓3买位判断无效,请选择其他坐庄类型"
                         End If

                     Next BC_6
'                     Unload UserForm3
                    End
                 End If
         End If
   End If

Else

'如果窗体中的TEXTBOX5中输入了数据,执行下面判断代码

    'TextBox5.SetFocus
2:  If TextBox5.Text >= E点价格 Then
       Dim BC_3 As Long
       Dim BC_4 As Long
       BC_3 = MsgBox("BC段最高收盘价超过AB段幅度75%计算价,属于BC段无效,建仓形态要素不达标。请审核填入的参数,如输入无误,点击“确定”按钮,结束建仓3买位形态判断。重新输入选“否”", vbYesNo)

       If BC_3 = vbNo Then
          GoTo 1
       Else

           Dim BC_2 As Long

           For BC_2 = 8 To Range("P500").End(xlUp).Row

               If Cells(BC_2, 17) = "建仓" And Cells(BC_2, 294) = "" Then
                  Cells(BC_2, 294) = "BC段无效"   'LABEL15:文本标题,内容:BC段完成参数输入,有效!
                  Cells(BC_2, 17) = ""
                  Cells(BC_2, 17) = "建仓3买位判断无效,请选择其他坐庄类型"
               End If
            Exit For
            Cells(BC_2, 16).Select
           Next BC_2
           End
'           Unload UserForm3
'           Exit Sub
'           Unload Me

       End If
    Else
       '如果BC段最高上影线价格大于等于C点价格 并且 BC段的最高收盘价格小于E点价格 则BC段有效判断代码
        If TextBox4.Text >= C点价格 And TextBox5.Text <= E点价格 Then
           Label15.Visible = True
           Application.Wait (Now + TimeValue("0:00:02"))
           Label15.Visible = False

           Dim BC_1 As Long

           For BC_1 = 8 To Range("P500").End(xlUp).Row

               If Cells(BC_1, 17) = "建仓" And Cells(BC_1, 294) = "" Then
                  Cells(BC_1, 294) = Label15    'LABEL15:文本标题,内容:BC段完成参数输入,有效!
               End If

           Next BC_1

         End If

     End If
End If
End Sub



回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-4 06:24 , Processed in 0.316176 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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