精华内容
下载资源
问答
  • VBA 获取列不重复值

    千次阅读 2016-07-22 16:42:34
    Sub Uniquedata() Dim EachCell As Range 'Creat UniqDicictionary object Set UniqDic = CreateObject("Scripting.Dictionary") 'Traverse selected area For Each EachCell In Range("A2:C11") ...
    Sub Uniquedata()
    	Dim EachCell As Range
    	'Creat UniqDicictionary object
    	Set UniqDic = CreateObject("Scripting.Dictionary")
    	'Traverse selected area
    	For Each EachCell In Range("A2:C11")
    	'Judge whether each cell is NULL
    	If EachCell <> "" Then
    	'Add key and value into UniqDic if UniqDic dont' have value of this cell
    	If Not UniqDic.exists(EachCell.Value) Then UniqDic.Add EachCell.Value, EachCell.Value
    	End If
    	Next
    	'clear content what you select
    	Range("F2:F" & Range("F2").End(xlDown).Row).ClearContents
    	'input unique data into column you select 
    	Range("F2").Resize(UniqDic.Count) = WorksheetFunction.Transpose(UniqDic.Items)
    End Sub

    展开全文
  • 现希望得知有哪些户的居民已登记,因而希望获取“户号”不重复值,并存储在J。该如何用VBA实现? 示例数据表 姓名 街路巷 户别 与户主关系 性别 民族 户号 甲1 清水乡双井村 农村...

    目录

    示例

    示例数据表

    代码1

    去除重复值(RemoveDuplicates)方法

    代码2

    代码3


    示例

        如图所示,该表为某村人口登记表。现希望得知有哪些户的居民已登记,因而希望获取“户号”列的不重复值,并存储在J列。该如何用VBA实现?

    示例数据表

    姓名街路巷户别与户主关系性别民族户号
    甲1清水乡双井村农村居民家庭户户主汉族310000122
    甲2清水乡双井村农村居民家庭户汉族310000122
    甲3清水乡红岩村农村居民家庭户汉族310000148
    甲4清水乡红岩村农村居民家庭户汉族310000148
    甲5清水乡红岩村农村居民家庭户汉族310000148
    甲6清水乡红岩村农村居民家庭户二女汉族310000148
    甲7清水乡红岩村农村居民家庭户户主汉族310000148
    甲8清水乡银鸽村农村居民家庭户户主汉族310000157
    甲9清水乡银鸽村农村居民家庭户长女汉族310000157
    甲10清水乡银鸽村农村居民家庭户汉族310000157
    甲11清水乡银鸽村农村居民家庭户汉族310000157
    甲12清水乡街道城镇居民家庭户户主汉族310000168
    甲13清水乡银鸽村农村居民家庭户户主汉族310000179
    甲14清水乡双井村农村居民家庭户汉族310000219
    甲15清水乡双井村农村居民家庭户户主汉族310000219
    甲16清水乡双井村农村居民家庭户汉族310000219
    甲17清水乡老银村农村居民家庭户长子汉族310000395
    甲18清水乡银鸽村农村居民家庭户汉族310000429
    甲19清水乡银鸽村农村居民家庭户汉族310000429
    甲20清水乡银鸽村农村居民家庭户汉族310000429
    甲21清水乡银鸽村农村居民家庭户户主汉族310000429
    甲22清水乡老银村农村居民家庭户户主汉族310000441
    甲23清水乡万书村农村居民家庭户汉族310000450
    甲24清水乡万书村农村居民家庭户汉族310000450
    甲25清水乡万书村农村居民家庭户孙女汉族310000450
    甲26清水乡万书村农村居民家庭户户主汉族310000450
    甲27清水乡街道城镇居民家庭户户主汉族310000541

    代码1

    使用单元格区域的RemoveDuplicates方法可以去除重复值,从而获取不重复值列表。

    Sub 获取不重复数据1()
        Range("G:G").Copy Range("J:J")
        Range("J:J").RemoveDuplicates Columns:=1, Header:=xlYes
    End Sub
    

    去除重复值(RemoveDuplicates)方法

        RemoveDuplicates方法是单元格对象(Range)的一个方法,可以利用该方法去除重复值,其语法为

    Range.RemoveDuplicates([[Columns],Header])

    其中,Range表示单元格区域对象。
        参数Columns为带有重复信息的列数组,本例中为1列,所以为1。当有多列时,可以以Array (CoIN1,CoIN2)的形式表示。
        参数Header表示单元格区域是否含有标题行,可以为xIYes(有标题行)、xINo(无标题行)或者xIGuess(由Excel进行判断)。

    代码2

        将G列中的数据逐一取出,利用循环判断J列中是否有当前的数据,若不存在,则将该数据复制到J列首个空白行。重复以上步骤,直到G列数据均被访问过一次。

    Sub 获取不重复数据2()
        Dim rowNew As Long          '结果数据行号
        Dim rowData As Long         '原始数据行号
        Dim i As Long               '各号计数
        Dim sKey As String          '关键字
        Dim bln As Boolean          '查询结果标志
        
        rowNew = 2                  '设定结果初始行号
        '清空结果域
        Range("J2:J" & Rows.Count).Clear
        For rowData = 2 To Range("A1").CurrentRegion.Rows.Count
            sKey = Cells(rowData, "G").Value
            bln = True
            For i = 2 To rowNew - 1
                If Cells(i, "J").Value = sKey Then
                    bln = False
                    Exit For
                End If
            Next i
            If bln Then
                Cells(rowNew, "J").Value = sKey
                rowNew = rowNew + 1
            End If
        Next rowData
    End Sub
    

    代码3

        将G列中的数据逐个取出,利用Find方法查找J列中含有当前数据的单元格,若不存在,则将该数据复制到J列首个空白行。重复以上步骤,直到G列数据均被访问过一次。
     

    Sub 获取不重复数据3()
        Dim rowNew As Long
        Dim rowData As Long
        Dim Rng As Range
        Dim sKey As String
        
        rowNew = 2
        Range("J2:j" & Rows.Count).Clear
        For rowData = 2 To Range("A1").CurrentRegion.Rows.Count
            sKey = Cells(rowData, "G").Value
            Set Rng = Range("J:J").Find(sKey, lookat:=xlWhole)
            If Rng Is Nothing Then
                Cells(rowNew, "J").Value = sKey
                rowNew = rowNew + 1
            End If
        Next rowData
    End Sub
    

     

    展开全文
  • VBA 获取最大行数和最大列数

    万次阅读 2020-01-12 09:19:29
    在EXCEL中,对数据进行定位操作,必然要用到...columnmax = Range("IV1").End(xlToLeft).Column '取得1行的最大列数 columnmax =cells(i,columns.count).end(xltoletf).column 'i行的最大列数 rowmax = Sheet1.Range(...

    在EXCEL中,对数据进行定位操作,必然要用到数据区域的最大行和最大列,代码如下:

    columnmax = Range("IV1").End(xlToLeft).Column            '取得1行的最大列数
    columnmax =cells(i,columns.count).end(xltoletf).column   'i行的最大列数

    rowmax = Sheet1.Range("a65536").End(xlUp).Row         '取得A列的最大行
    注:此方法返回工作表中最后一个包含非空内容的单元格所在的行号,而不管这一单元格与Me.Cells(1,1)之间是否有包含空白内容的单元格。而且这一方法将跳过或者说忽略被隐藏的单元格,比如,数据表有连续的50行,如果第48到50行隐藏了,则只返回47.
    rowmax =range("A65536").end(3).row                              '取得A列的最大行数
    rowmax =UBound(Range("a1").CurrentRegion)               '取得A列的最大行数

    Worksheets(1).UsedRange.Columns.count      '获取最大列数和最大行数的写法
    Worksheets(1).UsedRange.Rows.Count
    缺点:​​​​​只要行被使用过,即使数据后来被清空,也算被使用过

    application.WorksheetFunction.函数名()         '想在VBA中用EXCEL的函数

    Application.DisplayAlerts = False    '这个是去掉警告,如文件重复,是否替换
    Application.DisplayAlerts = True    '这个是还原警告,如文件重复

    ActiveWorkbook.Saved = True
    Application.Quit                    '不作修改退出

    'DIM的简便用法
    Integer %         
    Long & 
    Single ! 
    Double # 
    Currency @ 
    String $ 
    String*size $

    展开全文
  • VBA判断某数据重复存在

    千次阅读 2017-07-22 21:59:05
    如果数据重复存在,则将重复数据标红色并打印到另一列

    如果数据重复存在,则将重复数据标红色并提示        

    ①数据行数确定时:

    For i = 2 To 10    ' 数据检查数据从第2行到第10行的数据

            If Application.CountIf(Range("A1:A10" ), Cells(i, 1)) > 1 Then

                    Cells(i, 1).Font.Color = 255  
                    Cells(i, 5) = Sheet1.Cells(i, 1) + "重复存在"

            End If

     Next i


    ②数据行数不确定时:

    For i = 2 To totalRow     ' totalRow   数据的总行数,可利用查询函数动态获取。

            If Application.CountIf(Range("A1:A" & totalRow), Cells(i, 1)) > 1 Then

                    Cells(i, 1).Font.Color = 255
                    Cells(i, 5) = Sheet1.Cells(i, 1) + "重复存在"

            End If

     Next i


    演示结果如下图:


    展开全文
  • 八、对表格或数组进行或求和 函数代码 代码 数据表样子 调用例子 代码 表格操作系列未完,待续! ——专注办公软件的二次开发及培训,你有问题,我有思路! ——微博、微信、CSDN同号:w_dexu。 ——转载请注明...
  • Excel使用过程中,有很多场合都需要获取一组数据的不重复值。获取不重复值的方法有很多,例如高级筛选法、透视表法、基础操作法和公式法。本例分别向大家介绍这四种方法如何使用。 工具/原料 Excel 高级筛选...
  • ExcelVBA使用删除重复项获取...利用单元格区域的RemoveDuplicates方法可以去除重复,从而获取不重复值列表,如下图所示。 示例代码如下。 Sub RemoveDuplicates() Range("A1").CurrentRegion.Copy Range("E1") ...
  • 统计这些表某一列,然后显示出统计页 1.2 初期想到的难点 文件夹下统计某一种文件难,但是需要迭代子文件夹,可能需要用到递归 用VBA使用文件的内容前,必须先打开文件 2 第一版正确代码,基础可以跑而已...
  • 假如某一列包含多种重复单元,但是重复的单元对应的其它列却相同,需求便是指定某一列,寻找其中相同的元素,对两行元素进行合并。如下图所示的源数据, 可以看到,该Excel表格的A列有很多重复项,对他们进行合并...
  • citename = df['测点名称'] citename = list(set(citename)) 即可
  • 数据处理工程中经常用到去重和取唯一,或者取几组数据的交集与并集,其实这两类问题的求解思路是相同的。字典对象中的元素具备唯一性,因此经常被用来处理此类问题。 假设有如下数据集合,对于B和C数据需要求...
  • Sub 工作表拆分2() '通过筛选方法完成需求,速度快,但当有合并单元格时就能用。读者可以根据实际情况选用 Dim SplitCol As String, ColNum As Integer, HeadRows As Byte, arr, lastrow, i, ShtIndex, only As ...
  • 1.去除重复项 2.自动生成下拉菜单 3.重复项自动求和 附上代码: Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim d1 As Object, d2 As Object, d3 As Object, arr, i As Integer, k, brr, ...
  • 文章目录使用Excel 的vba宏将同行数据合并到同一单元格、效果展示二、创建变量三、将excel数据存入变量中四、拼接处理五、拼接后插入 、效果展示 图:未拼接前 图二:拼接后效果 二、创建变量 'vbCrLf 为...
  • 如何利用VBA数组提取该列不重复,并存放于新表中? 日期 销售经理 客户分类 区域 分配业务员 回款地 所属公司 产品分类 客户名称 销售数量 单价 销售金额 送货单号 2010...
  • 大家在学习VBA的时候,可以把这些代码块作为块块的积木对待,平时积累,用时拿来修正、组合。这就是我的“积木编程”的思想,这些讲解就是我推出的“积木”方案,希望大家加以利用。最近代码多是出自我的第三套...
  • 如何查找一个数组内,某个元素的index是多少? 如果element元素唯一,可以用match查, 但是 application.match 比 worksheetfunction.match() 函数更健壮 如果唯一呢 用match 只能返回第一个查到的元素的index...
  • Excel的多行或者多删除
  • VBA常用技巧

    2014-12-21 16:39:28
    技巧155 不重复值的录入 12 技巧156 获得当月的最后天 12 技巧157 四舍五入运算 12 157-1 极小修正法 12 157-2 调用工作表函数法 12 技巧158 使用字符串函数 12 技巧159 使用日期函数 12 技巧160 判断是否为数值...
  • VBA程序如下: Sub test1() Dim w As Worksheet Set w = Worksheets("测试数据") Dim i As Integer, j As Integer, num As Integer, col As Integer Dim r As Range, rr As Range ' rr是需要复制的单元格 ...
  • EXCEL第一列内容相同的,第二列单元格内容相应合并在同一单元格Excel 问题描述抽取第一列中的相同内容抽取第二列内容道绿框中第二列 Excel 问题描述 红色框是原始的数据,我的目的是想要通过红色框的转换成绿色框...
  • 但是大家对VBA了解的就会少很多,因为这属于Excel的高级使用项目,对于喜欢写自动化或批处理的童鞋来说,这肯定是会让你上瘾的东西。好了,介绍了这么多。还是知道VBA是什么呢。OK。我们先举个别的例子,什么...
  • VBA与数据库

    2015-11-19 18:07:38
    •实例3-11 查询不重复的字段记录(DISTINCT) 63 •实例3-12 利用Like运算符进行模糊查询 64 •实例3-13 查询某区间内的记录(BETWEEN) 65 •实例3-14 查询存在于某个集合里面的记录(IN) 67 •实例3-15 将查询...
  • VBA数组

    千次阅读 2019-05-03 01:49:57
    VBA数组详解
  • 现希望建立一个汇总表,按月份和商品名汇总收入,并将月份作为标题而商品名作为行标题。该如何用VBA实现? 日期 商品代码 商品名 数量 收入 2011/8/17 01.0032 ASWDVBN 0.05 4273.5 ...
  • VBA中有一个集合对象(collection),Collection 对象是组可称为“单元”的有序项目的集合,可以理解为可以随意增减数量的维数组。 Collection对象提供了种方便的方法,可以将相关的组项目当作单个对象进行...
  • 在上章咱们讲了为什么要学习VBA~VBA值不值得学~学了还有没有用~零基础学VBA编程01:VBA还能能学?学了还有没有用?这章咱们再来简单回答几小问题:什么是VBA?如何编写和运行VBA代码?什么是VBA先来看第...
  • VBA实现动态查询下拉列表输入

    千次阅读 2020-07-25 23:43:53
    Excel利用VBA实现下拉列表,同时支持输入时动态查询,根据输入的不同实现动态的查询 先看一下实验效果: 当点击website这一列时会出现所有的网站列表,双击可点击选择数值填入 输入关键字时会只出现包含关键字的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,402
精华内容 560
关键字:

vba获取一列不重复值个数