分不多 因为之前发了同样的一个帖子在office应用板块里了
http://topic.csdn.net/u/20120308/15/44232cd2-2f02-40fe-8835-273cb1612fc8.html?06045900873390773
所以解答好了 到时要分的可以直接这里拿分了!
各位大神们 怎么在excel2007里实现这样的验证 加入A列 B列里都各有内容,我想通过excel自身的功能去做个验证B列重复性的问题。
验证B列是否有重复的内容的单元格,如果有,则还需要判断对应的A列里这几个重复的单元格在A列的内容是否一致,如果A列的内容一致 则判断B列的重复单元格内容为重复内容,反之,则不为重复内容。
A        B
测试    123
测试    123  
测试1   123
测试2   1234根据这个列子按上面的条件 可以看出 B1,B2单元格重复,但B1,B2和B3单元格并不重复请问我怎么使用excel自身的功能去实现呢? 

解决方案 »

  1.   


    Sub 重复值()
        ActiveWindow.SmallScroll Down:=-9
        Columns("B:C").Select
        Selection.FormatConditions.AddUniqueValues
        Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
        Selection.FormatConditions(1).DupeUnique = xlDuplicate
        With Selection.FormatConditions(1).Font
            .Bold = True
            .Italic = False
            .Color = -16776961
            .TintAndShade = 0
        End With
        Selection.FormatConditions(1).StopIfTrue = False
    End Sub
    谁能将这个VB的代码转成C#的啊
      

  2.   


    这个是不是要用VBA在EXCEL里处理您的要求了...
      

  3.   

    是啊 只能通过代码来实现了,能帮我把上面的VBA的代码转成C#的么
      

  4.   

    没用过vba, 对你这句: ActiveWindow.SmallScroll Down:=-9 转换不确定,其他可以在线翻译的
      

  5.   

    用EXCEL自己的公式应该可以解决,要加两列用公式判断,好象是count和countif组合。
      

  6.   

      public void AddExpression(int cellR1, int cellC1, int cellR2, int cellC2, string expression)
            {
                Range cell1;
                Range cell2;
                cell1 = (Range)_workSheet.Cells[cellR1, cellC1];
                cell2 = (Range)_workSheet.Cells[cellR2, cellC2];
                Range range = (Range)_workSheet.get_Range(cell1, cell2);
                range.Formula = expression;
            }
    传进去一个拼接的表达是  去判断就行了  重复的怎处理  变蓝么
      

  7.   

    嗯 变红把,主要是想实现成像EXCEL 2007里自带的那个验证重复数据的功能一样(开始-条件格式-突出显示单元格规格-重复值)
      

  8.   

    利用VBA可以验证。可以通过宏录制取得VBA代码然后再写成C#
      

  9.   

    我试过宏录制转VBA代码 然后就是我3楼发的vb代码 但我不太懂vb代码就不知道如何转
      

  10.   

    添加一个C列,公式:=A1&";"&B1,这样C列的内容就是A和B的组合,然后再判断C列是否有重复就可以了,可用条件格式中的重复值找到C列中重复的单元格,这样对应的A和B列就是重复的。不知道能不能解决你的问题。
      

  11.   

    通过Excel的COM组件打开Excel工作薄,然后再一行一行遍历,找出符合你要求的行不就行啦,这个更简单吧。
      

  12.   

    那试试用ADO.NET连接工作薄,然后通过SQL语句查询。
      

  13.   

    =IF(COUNTIFS($B$1:$B$10000,$B1,$A$1:$A$10000,$A1)>1,"重复","不重复")
    用这个公式试试
      

  14.   

    这里回复过的童鞋们 去这个帖子再拿分了 速度了 我要一起结贴了http://topic.csdn.net/u/20120308/15/44232cd2-2f02-40fe-8835-273cb1612fc8.html