Foxtable(狐表)用户栏目专家坐堂 → 关于Select Case。


  共有12722人关注过本帖树形打印复制链接

主题:关于Select Case。

帅哥哟,离线,有人找我吗?
czy
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/8/10 18:48:00 [显示全部帖子]

1、2、3、4、5列的数据是怎么来的?

 回到顶部
帅哥哟,离线,有人找我吗?
czy
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/8/10 22:09:00 [显示全部帖子]

如果用填充的话就不要在datachanged事件中放这样的代码了,或者填充时关闭执行代码的执行。

填充完成后用For Each语句计算指定列即可,这样速度应该会有大幅提升的。


 回到顶部
帅哥哟,离线,有人找我吗?
czy
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/8/10 22:15:00 [显示全部帖子]

以下是引用wcs在2010-8-10 22:04:00的发言:

用数据填充器取来的。

 

我不知道是一行一行取来的,还是一个单元格一个单元格取来的。

 

如果是后者,那我的代码效率就低了,要触发5次。

[此贴子已经被作者于2010-8-10 22:05:54编辑过]

 

是一个单元格一个单元格进行填充的,每填充一个单元格都会触动一次代码。

为验证以上的说法,你可以在新文件中进行测试,在DataColChanged设置下面的代码后,再执行填充操作就可以看到结果了。

 

Select Case e.DataCol.name
    Case "第一列","第二列","第三列","第四列","第五列"
        MessageBox.Show(e.DataCol.name)
End Select


 回到顶部
帅哥哟,离线,有人找我吗?
czy
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/8/10 22:17:00 [显示全部帖子]

如果将上面的代码改成下面这样你可以看到填充进来的值。

 

Select Case e.DataCol.name
    Case "第一列","第二列","第三列","第四列","第五列"
        MessageBox.Show(e.DataRow(e.DataCol.name))
End Select


 回到顶部
帅哥哟,离线,有人找我吗?
czy
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/8/11 0:34:00 [显示全部帖子]

以下是引用wcs在2010-8-10 23:22:00的发言:

如何关闭执行代码啊?

 

如果用For Each,我得再写大段的代码。

 

增加个逻辑型全局变量,默认为true,填充时设为false,填充完成后设为true,在原代码前增加一个判断,全局变量为true执行代码,反之不执行。

填充完成后用RaiseDataColChanged方法进行重置即可。

[此贴子已经被作者于2010-8-11 0:36:00编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
czy
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/8/11 12:34:00 [显示全部帖子]

以下是引用wcs在2010-8-11 9:07:00的发言:

明白了。

 

计算代码效率可能要高一些,但这样按键中的代码很长很长。

 

在事件中写代码,用全局变量和RaiseDataColChanged,也是可行的。

 

如果按我说的这样做,和重新写计算代码效率不会有差别的。


 回到顶部
帅哥哟,离线,有人找我吗?
czy
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/8/11 12:51:00 [显示全部帖子]

以下是引用lihe60在2010-8-11 12:39:00的发言:
楼主循环引用,要死机的。无法实现。

 

楼主的代码没有看出有循环引用。

如果这行代码:代码...... = 第一列至第五列 引用了第一列至第五列,那才叫循环引用。


 回到顶部