美文网首页
VBA实现Excel数据唯一

VBA实现Excel数据唯一

作者: halfempty | 来源:发表于2019-05-15 20:43 被阅读0次

    1 问题

    给定N个小组, 将100个人划入N个小组中
    此时其中某人从小组A移至小组B, 在小组B中输入某人的名字, 小组A中某人的名字自动清除

    2 分析

    vlookup适合处理2列数据的对比, 多列的还未用过
    如果使用编程思想, 遍历行列数据与当前单元格比较, 二者相同则将旧单元格数据清空即可, 简单明了
    此时就用到了vba, 即宏

    3 解决

    Change事件, 监测单元格数值的变化
    假定表格范围为15行, 7列

    Private Sub Worksheet_Change(ByVal Target As Range)
        Const row As Integer = 15
        Const column As Integer = 7
        
        Dim cRow, cColumn As Integer
        
        cRow = Target.row
        cColumn = Target.column
        
        For r = 1 To row
            For c = 1 To column
                If Len(Target.Value) > 0 And (cRow <> r Or cColumn <> c) And Cells(r, c) = Target.Value Then
                    Cells(r, c).Clear
                    MsgBox ("Clear cell at (" & r & ", " & c & ")")
                End If
            Next c
        Next r
    End Sub
    

    4 效果

    info.gif

    5 引申

    Excel对象: Application, Workbooks, Sheets, Range, Cells

    相关文章

      网友评论

          本文标题:VBA实现Excel数据唯一

          本文链接:https://www.haomeiwen.com/subject/dinmaqtx.html