Excel精英培训网

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

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

[复制链接]
发表于 2016-9-3 21:26 | 显示全部楼层 |阅读模式
本帖最后由 xlcywj 于 2016-9-4 15:11 编辑

[url=]求教2.rar[/url]
最佳答案
2016-9-4 14:55
改为Private Sub TextBox5_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
是不会重复了。
求教2.zip (177.5 KB, 下载次数: 5)
图片2.jpg

求教2.rar

194.27 KB, 下载次数: 7

发表于 2016-9-3 22:45 | 显示全部楼层
你把 MsgBox "………………"
改为:
x = MsgBox("………………")
If x = 1 Then Exit Sub

再试试
回复

使用道具 举报

 楼主| 发表于 2016-9-3 22:56 | 显示全部楼层
su45 发表于 2016-9-3 22:45
你把 MsgBox "………………"
改为:
x = MsgBox("………………")

我设置了变量,如下:
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
              Dim BC_5 As Long
              Dim BC_6 As Long
              BC_5 = MsgBox("BC段最高收盘价超过AB段幅度75%计算价,属于BC段无效,2元次建仓形态要素不达标。请审核填入的参数,如输入无误,点击“确定”按钮,结束2元次建仓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) = "2元次建仓" And Cells(BC_6, 294) = "" Then
                            Cells(BC_6, 294) = "BC段无效"   'LABEL15:文本标题,内容:BC段完成参数输入,有效!
                            Cells(BC_6, 17) = ""
                            Cells(BC_6, 17) = "2元次建仓3买位判断无效,请选择其他坐庄类型"
                         End If

                     Next BC_6
                     Unload UserForm3

                 End If
         End If
   End If

通过UNLOAD USERFORM3 退出,可还是会重复出现一次
BC_5 = MsgBox("BC段最高收盘价超过AB段幅度75%计算价,属于BC段无效,2元次建仓形态要素不达标。请审核填入的参数,如输入无误,点击“确定”按钮,结束2元次建仓3买位形态判断。重新输入选“否”", vbYesNo)
提示框



回复

使用道具 举报

 楼主| 发表于 2016-9-3 22:57 | 显示全部楼层
xlcywj 发表于 2016-9-3 22:56
我设置了变量,如下:
If TextBox5.Text = "" Then
   'TextBox5.SetFocus

文本框完整代码如下:
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

'BC段最高收盘价大于等与E点价格 BC段无效判断代码
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
              Dim BC_5 As Long
              Dim BC_6 As Long
              BC_5 = MsgBox("BC段最高收盘价超过AB段幅度75%计算价,属于BC段无效,2元次建仓形态要素不达标。请审核填入的参数,如输入无误,点击“确定”按钮,结束2元次建仓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) = "2元次建仓" And Cells(BC_6, 294) = "" Then
                            Cells(BC_6, 294) = "BC段无效"   'LABEL15:文本标题,内容:BC段完成参数输入,有效!
                            Cells(BC_6, 17) = ""
                            Cells(BC_6, 17) = "2元次建仓3买位判断无效,请选择其他坐庄类型"
                         End If

                     Next BC_6
                     Unload UserForm3

                 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段无效,2元次建仓形态要素不达标。请审核填入的参数,如输入无误,点击“确定”按钮,结束2元次建仓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) = "2元次建仓" And Cells(BC_2, 294) = "" Then
                  Cells(BC_2, 294) = "BC段无效"   'LABEL15:文本标题,内容:BC段完成参数输入,有效!
                  Cells(BC_2, 17) = ""
                  Cells(BC_2, 17) = "2元次建仓3买位判断无效,请选择其他坐庄类型"
                  Call T4
               End If

               Cells(BC_2, 16).Select
           Next BC_2
           Unload UserForm3
           Exit Sub


       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) = "2元次建仓" 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

回复

使用道具 举报

发表于 2016-9-4 10:03 | 显示全部楼层
问题是找到了,但可能解决不了
回复

使用道具 举报

发表于 2016-9-4 10:04 | 显示全部楼层
换一个事件试试,将
Private Sub TextBox5_EXIT(ByVal Cancel As MSForms.ReturnBoolean)
改为:
Private Sub TextBox5_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
回复

使用道具 举报

 楼主| 发表于 2016-9-4 14:34 | 显示全部楼层
su45 发表于 2016-9-4 10:04
换一个事件试试,将
Private Sub TextBox5_EXIT(ByVal Cancel As MSForms.ReturnBoolean)
改为:

还时一样出现重复提示 还有什么高招吗老师
回复

使用道具 举报

 楼主| 发表于 2016-9-4 14:36 | 显示全部楼层
难道这是一个无法避免的问题吗
回复

使用道具 举报

 楼主| 发表于 2016-9-4 14:45 | 显示全部楼层
请老师从经验上给个判断,如是无法避免的问题或无法修改,就让我就死了这个心


回复

使用道具 举报

发表于 2016-9-4 14:55 | 显示全部楼层    本楼为最佳答案   
改为Private Sub TextBox5_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
是不会重复了。
求教2.zip (177.5 KB, 下载次数: 5)
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-15 22:44 , Processed in 0.140840 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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