小春网

 找回密码
 注册账号
查看: 839|回复: 5
收起左侧

[IT 交流] VBA求改错

[复制链接]
发表于 2012-2-20 17:02:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册账号

x
9.jpg

程序设计是这样的,两个选择框选好之后,按Confirm的时候会有一个判断,两个框里任何一个为空的时候这个窗口自动重新弹出,重现选择,如果两个框的数据行数不一样的话也重新选,如果相等的话继续运行弹出Condecision.Show。


但是实际运行起来是这样的,两个选择框选好之后,按Confirm的时候会有一个判断,发现有空之后重新弹出这个窗口进行选择,两个框重选相同行数的数据后继续运行,到了Categorization.Show 之后居然会跳回到m1 = Data1.Rows.count    m2 = Data2.Rows.count   。但如果这两个选择框一次性选择了行数相同的数据就会运行到低,不会回来
Option Explicit
Dim Data1 As Range, Data2 As Range 'Data1条件属性数据、Data2决定属性数据
Dim n As Long, m As Long 'nとmは
Dim ii As Long

Private Sub CommandButton1_Click()        Dim m1 As Long, m2 As Long 'm1条件属性的行数、m2决定属性的函数    Dim i As Long '循环
    If RefEdit1.Value = "" Or RefEdit2.Value = "" Then ,‘这地方的判断想实现的是,如果二者有一个为空,或者均为空,则弹出消息,然后继续重新选择、但是现在如果用空就会弹出                          MsgBox "Not selected yet!"                                         “Not selected yet!”出现Run- time error 91 Object Variable or With block variable not set.的错误提示              
Else     
Set Data1 = Range(RefEdit1.Value)        
Set Data2 = Range(RefEdit2.Value)   
End If   
m1 = Data1.Rows.count   
m2 = Data2.Rows.count  
  

Descolumncount = Data2.Columns.count      
  If m1 = m2 Then        
Worksheets.Add After:=Worksheets(Sheets.count)      
ActiveSheet.Name = "Condition & Decision"        
Data1.Copy      
Worksheets("Condition & Decision").Paste  
Data2.Copy Range("IV1").End(xlToLeft).Offset(, 1)
Worksheets("Condition & Decision").Activate      
ActiveCell.CurrentRegion.Select        
n = Selection.Columns.count      
m = Selection.Rows.count    Else      
MsgBox "Counts of condition and decision attributes do not match, please choose range again."        
Me.Hide     
Condecision.Show   
End If   
Unload Me   
Categorization.ShowEnd Sub

发表于 2012-2-20 23:28:30 | 显示全部楼层
好久不见,你还在忙啊。
End If   的位置太前面了。就算弹出了警告,还是继续往下走,所以就错了。

评分

参与人数 1 +88 收起 理由
憨吃迷糊睡 + 88 很给力

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2012-2-23 19:18:58 | 显示全部楼层
sundf 发表于 2012-2-20 23:28
好久不见,你还在忙啊。
End If   的位置太前面了。就算弹出了警告,还是继续往下走,所以就错了。
...

怎么改的,我试着改了,结果都失败了
回复

使用道具 举报

 楼主| 发表于 2012-2-23 19:35:05 | 显示全部楼层
sundf 发表于 2012-2-20 23:28
好久不见,你还在忙啊。
End If   的位置太前面了。就算弹出了警告,还是继续往下走,所以就错了。
...

其实我在那里想实现一个 清空 重置 的功能。
这是最后一个bug了。。。。。。
回复

使用道具 举报

 楼主| 发表于 2012-2-23 20:00:23 | 显示全部楼层
改好了,谢谢,哈哈,还是你启发了我
回复

使用道具 举报

发表于 2012-2-23 22:39:08 | 显示全部楼层
小case,别客气
回复

使用道具 举报

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

本版积分规则

小春网
常务客服微信
微信订阅号
手机客户端
扫一扫,查看更方便! 快速回复 返回顶部 返回列表