问题来源:在编写002-004的过程中,突然想到现在学生已经开始分文理科了,导致班号并不是连着的,很多时候需要分别处理文、理科的数据,如果能事先把文科或理科的班号先提出来,然后根据班号来对应不同的程序,是不是效率会更高些?

所以本次只解决一个问题:如何按列提取不重复值.但是现在寻找了好几种方法,不是看不懂(^_^),就是感觉太麻烦,其实主要是看不懂啊.现在想了一个笨办法,就是先把数据复制到一个新表中,然后把所有重复的行删掉,这样就可以只剩下所有不重复值了.接着就可以把这些不重复值引入到数组或列表中,按数值有针对性对原表(复制源)进行操作,比如提取指定班级的学生信息,打印指定班级的学生信息等等.

先来一个确定行号的新方法

Sub 新的一种确定行号或列号的方法()
    Worksheets("sheet1").Activate
    R = Range("C65536").End(xlUp).Row '此种方法有巨大的意义:如果工作中间有空行,则若有原来的方法,则一定会出现不包括下面数值不为空的现象,而用这种方法是从底部往上寻找,直到第一个不为0为止.
    Debug.Print R
End Sub

根据问题的类型,设计了以下几个方面的问题:①如何做个备份(其实就是复制一份);②如何提取不重复值(偷梁换柱,把文件复制后,直接把重复行删掉,就得到不重复值了);③在②的基础上,联想到如何删掉空白行.

①如何复制工作表(注意并不是筛选后复制,而是直接复制工作表,包含全部数据,相当于备份.);②如何提取不重复值

Sub 如何删除重复行()
'重复行意味着同一列中必有相同的数值,故可以通过Countif函数统计出现重复数值的个数,若个数超过1,则说明必有重复行,故把此时的行删掉即可.
    Dim R As Integer
    Dim i As Integer
'建立一个副本,便于验证,同时也说明了如何进行工作表复制.
    Worksheets("sheet1").Copy Before:=Worksheets("sheet1")
    ActiveSheet.Name = "验证"
'顺便解决如何进行工作表的移动
'Worksheets("sheet1").Move Before:=Worksheets("sheet1")
    'ActiveSheet.Name = "验证"
    R = Range("B65536").End(xlUp).Row
    For i = R To 1 Step -1
        If Application.WorksheetFunction.CountIf(Range(Cells(1, 2), Cells(R, 2)), Cells(i, 2)) > 1 Then '充分利用Countif函数的功能:统计在指定区域内符合条件的个数,据此:若符合cells(i,2)的单元格个数出现了2个以上,则该行一定有重复行,那么即可把该行删掉.
            Range(Cells(i, 2), Cells(i, 2)).EntireRow.Delete
        End If
    Next i
End Sub

③如何删掉空行白

Sub 如何删除空白行()
    Dim R As Integer
    Dim i As Integer
    Worksheets("验证").Activate
    R = Range("A65536").End(xlUp).Row
    Debug.Print R '可以显示到最后一个数值不为空的行所在行号.
    'R = Range("A1").CurrentRegion.Rows.Count
    'Debug.Print R '只显示到第一个数值为空的行所在行号-1
    For i = R To 1 Step -1
        If Application.WorksheetFunction.CountA(Range(Cells(i, 1), Cells(i, 1)).EntireRow) = 0 Then 'CountA功能为统计指定区域内非空白单元格个数,若为0则说明该为空白行,故需要删掉;若不为0,则说明该行是有数据的.那能不能用Countblank函数呢?不能,因为要删掉的是整行,而Countblank统计的是空白单元格的个数,那在整行内必有空白单元格,那么统计个数就不可能出现为0现象,若条件设为Application.WorksheetFunction.CountBlank(Range(Cells(i, 1), Cells(i, 1)).EntireRow) = 0 那么哪一行也删不掉;若把=0改为<>0,也不行,因为哪一行也不会=0的情况,所有行的空白单元格个数都是不等于0的.
            Range(Cells(i, 1), Cells(i, 1)).EntireRow.Delete
        End If
    Next i
End Sub

刚才在写如何删除空白行的代码时,突然想到,现在已经可以确定最后一个数值不为空的行所在行号,那如何确定最后一数值(肯定也是在指定区域内(这个地方要验证:到底是一个区域还是一个单元格))不为空的列所在列号呢?

Sub 如何确定最后一列不为空的列号()
    Dim totalR, totalC As Integer
    totalR = Range("A65536").End(xlUp).Row'这是确定行号;
    totalC = Range("IV1").End(xlToLeft).Column'这是确定列号;即电子表格一共最支持256列,65536行,这是常识,最好记住.
    Debug.Print totalR, totalC '这就可以确定有效数据的区域.
End Sub

 今天你菊子曰了么?

转载于:https://www.cnblogs.com/xiehui/archive/2010/03/07/2004331.html

Excel学习笔记002-005:如何按列提取不重复值相关推荐

  1. 安装命令:pip install xlrd ,pandas操作Excel学习笔记__7000

    pandas操作Excel学习笔记_loc和iloc_7000 pandas操作Excel学习笔记__7000 1.安装环境:pandas需要处理Excel的模块xlrd,所以需要提前安装xlrd.不 ...

  2. 王佩丰Excel学习笔记

    王佩丰Excel学习笔记 算术不需要写等号:选项-高级-转换Lotus 1-2-3 公式 两个表格排列:视图-全部重排 插入多张工作表:先选择多张表格再添加 插入多行:先选择多行再添加 改变列顺序:按 ...

  3. 王佩丰excel学习笔记(一):第一——二讲

    目录 第一讲 第二讲 不努力就会落后,嘤嘤嘤.一周没发文章,就眼看着我的阅读量一步步往下掉,但我也不知道应该写啥,索性来写写我的excel学习笔记(主要原因是我看完就忘了,又懒得翻视频,干脆写下来). ...

  4. C++操作Excel学习笔记

    C++操作Excel学习笔记 一: [当前博文转载自http://blog.csdn.net/fullsail/article/details/4067416] C++读取Excel文件方式比较 C+ ...

  5. EXCEL学习笔记——小技巧

    EXCEL学习笔记--小技巧(持续更新) 我赌五毛:八成的EXCEL使用者连SUM()函数的帮助都没阅读过.我敢再赌五毛:九成的EXCEL使用者没使用过我下文中九成的技巧.写本文的初衷是能让EXCEL ...

  6. (小白)Excel学习笔记

    Excel学习笔记 欢迎阅读我的Excel学习笔记 我的第一篇博客 入门 表格设计&自动加总函数 欢迎阅读我的Excel学习笔记 最近闲来无事,在b站上看见一个up主的Excel教学视频(本来 ...

  7. OpenCV学习笔记#002 OpenCV相机检校例程运行

    OpenCV学习笔记#002 OpenCV相机检校例程运行 OpenCV学习笔记#002 OpenCV相机检校例程运行 所需文件 修改文件 修改in_VID5.xml 修改VID5.xml VS 设置 ...

  8. jxls读取模板导出Excel学习笔记

    jxls读取模板导出Excel学习笔记 ​ jxls是一个简单的.轻量级的excel导出库,使用特定的标记在excel模板文件中来定义输出格式和布局.除此以外,java中成熟的excel导出工具有po ...

  9. Building Worlds In Unreal 学习笔记——03-06 地形贴图/地形材质/修正重复/近景位移

    Building Worlds In Unreal 学习笔记--03-06 地形贴图/地形材质/修正重复/近景位移 Lec03 地形贴图 Landscape Textures 1 Quixel Bri ...

最新文章

  1. 据说电脑上可以刷朋友圈啦!又多了个上班摸鱼的途径?
  2. Luogu P1886 滑动窗口
  3. java判断输入的格式化_Java的字符串及格式化输入输出
  4. jenkins pipeline php,Jenkins pipeline 系列二-为什么选择Pipeline
  5. c语言按shift用户随时退出,2014年云南省“三校生”高考计算机第三次模拟试卷...
  6. HTTPS 的 7 次握手以及 9 倍时延
  7. Linux包含一个名称是()的调试程序,开发一个 Linux 调试器(九):处理变量
  8. FunTester框架Redis性能测试之list操作
  9. MAC硬盘空间减少的隐藏杀手,VM到底是什么?
  10. 软件基本功:开发测试中的穷举归纳法
  11. 小米pro安装win10系统
  12. Python爬虫实战之利用多线程爬取千图网的素材图片
  13. html6张拼图,拼图6张-好看的6宫格拼图大全-稿定设计
  14. 小程序如何自定义组件
  15. 副业项目:抖音车载U盘赚钱项目
  16. POI设置excel样式
  17. 3天(从策划到上线传播)获客10w+| 小程序拉新活动范例
  18. 华为VPLS配置案例S6720
  19. Hook DirectX 在War3 魔兽争霸界面写屏
  20. 我的世界手机版虚拟人生服务器,我的世界虚拟人生mod攻略 虚拟人生mod怎么玩...

热门文章

  1. 智能工厂系统架构图_一些智能化弱电系统架构图,做方案可以用
  2. ElasticSearch之term vector
  3. (66)UART接口波特率是多少?以及异步采样时钟是多少频率?
  4. (56)UART外设驱动协议(一)(第12天)
  5. (54)Xilinx双沿原语-IDDR与ODDR(第11天)
  6. (45)Xilinx Counter IP核配置(六)(第9天)
  7. (8)FPGA时钟设计(第2天)
  8. 微型计算机由5大部分,微机原理答案 (5)
  9. mqtt server python_使用python实现mqtt的发布和订阅
  10. Python 语法糖