您的位置:程序门 -> 其他开发语言 -> office开发/ vba



如何控制excel 里面的内容? 此问题简单但又十分棘手,高分奉送!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


如何控制excel 里面的内容? 此问题简单但又十分棘手,高分奉送!
发表于:2007-06-04 08:57:41 楼主
用户有一个excel,他会在里面输入姓名和学习成绩,   假设100个,我要将这100个人的成绩按由高到低,分别分成5%,   15%   ,65%   ,10%   ,5%   五组,   但有时会有成绩重复的情况,   这样就会导致5%也许会多于5人。我想请问各位,   如何在excel里控制成绩不会重复?如果用户输入重复的成绩,   excel如何拒绝此数据并提示用户重新输入或拒绝保存?
发表于:2007-06-04 09:51:591楼 得分:0
有哪位高手可以帮我解决这个问题吗?谢谢!!!
发表于:2007-06-04 10:58:122楼 得分:0
没有人会这个问题吗?
发表于:2007-06-04 11:23:413楼 得分:0
在excel里检测用户输入的数据没有很好的办法(针对我而言),在sheet里有一个change事件是可以
检测一单元格的数据变更,但函盖面太广,麻烦!。但也只有这个事件可用了。
发表于:2007-06-04 13:47:314楼 得分:0
还有没有其他办法?
发表于:2007-06-04 15:49:445楼 得分:0
???
发表于:2007-06-05 08:44:556楼 得分:0
用   数据有效性   配合   countif   函数
发表于:2007-06-13 22:01:487楼 得分:0
在单元格的selectionchange事件调用find()方法查找数据域;
    或者定义一个全局的数组变量(初始值为0到100),每增加一个数,就把数组里的那个数给删去,然后下次输入时以下拉框的形式显示给用户选择,使得每次输入的数据都是唯一的,避免二次检查.
发表于:2007-06-14 15:40:388楼 得分:0
5%---1等奖学金,  
15%--2等奖学金,
65%--及格,
10%--补考,
5%---大挂。
发表于:2007-07-02 20:08:589楼 得分:0
使用数据有效性
发表于:2007-07-03 08:42:0810楼 得分:0
选中a列,设置数据有效性为
=countif(a:a,a1)=1
这样就不能在a列输入重复数据了.

ps:数据多时计算速度会很慢.
发表于:2007-07-03 10:42:3811楼 得分:0
public   last_address,   cj_column

private   sub   worksheet_activate()
      last_address   =   activecell.address
      cj_column   =   0
      for   i   =   1   to   worksheetfunction.counta(range( "1:1 "))
            if   cells(1,   i).value   =   "成绩 "   then
                  cj_column   =   left(cells(1,   i).address,   len(cells(1,   i).address)   -   2)
            end   if
      next
end   sub

private   sub   worksheet_selectionchange(byval   target   as   range)
      if   len(cj_column)   >   1   then
            if   left(last_address,   len(cj_column))   =   cj_column   and   mid(last_address,   len(cj_colunm)   +   1,   1)   =   "$ "   then
                  if   worksheetfunction.countif(range(cj_column   &   ": "   &   cj_column),   range(last_address))   >   1   then
                        msgbox   "对不起,已经有该成绩存在,不能重复录入! "
                        range(last_address).clear
                        range(last_address).select
                  end   if
            end   if
      end   if
      last_address   =   activecell.address
end   sub

应用以上代码前必须先在表的第一行输入好列标题如“姓名 ", "成绩 "


快速检索

最新资讯
热门点击