zoukankan      html  css  js  c++  java
  • VBA粗犷整理

    PART1:

    三、查找
    1、从某一行向上/下找到第一个不为空的行
    intRowPntEnd = ActiveSheet.Cells(intRowPntStart, intColPnt).End(xlDown).Row
    m = Range("e65536").End(xlUp).Row
    四、定位
    2、在某个区域查找标记名称
    For Each std In ActiveSheet.UsedRange

    五、行列的range变量
    ActiveSheet.Range("F3").Copy ThisWorkbook.Sheets(1).Range("A" & intRowPaste & ":A" & intRowPaste + intRowsCnt - 1)
    =INDEX(AC:AC,Q21)
    =IF(AND(IFERROR(MATCH(T21,$A$1:$A$99,0),"")<>"",INDEX(AC:AC,Q21)="Y"),N21,0)
    =IF(AND(IFERROR(MATCH(T21,$A$1:$A$99,0),"")<>"",IFERROR(INDEX(AC:AC,Q21),"")<>""),"","")

    • 公式篇
      ** 1、通过公式查找

    *** Match函数:返回值是数字。
    功能:在单元格区域中搜索指定项,然后返回该项在单元格区域中的相对位置。
    例:在B列中,但找81所在的行号。
    match(81,B:B,0):最后一个0为无序查询,要写下才可以使用。

    *** Index函数:返回表格或区域中的值或值的引用。
    例:在B列中,找第3行的元素值。
    index(B:B,3)
    此处3也可以使用某个单元格的内容,假如Q1为3,则可写为index(B:B,Q1)

    *** vlookup函数:
    功能:搜索某个单元格区域的第一列,返回该区域相同行上任何单元格的值。
    例:搜索A2:C10区域的第一列中的值38,返回同一行中第三列的值
    vlookup(38,A2:C10,3,false) : false为精确查找,必须的! 找不到时返回错误值#N/A

    *** find函数

    ** 2、最大/小值
    *** MAX
    例:在T列中若有个值等于T35的值,则找出R列中这一行的值的最大值。
    MAX(IF($T$1:$T35=$T35,$R$1:$R35))
    在完成之后,按Ctrl+SHIFT+Enter,实现即可

    *** SMALL
    功能:返回数据集中第k个最小值。
    例:small(A2:A10,4)
    返回A列2行到10行中的第4个最小值
    ** 3、计数

    *** countifs :相当于多个countif
    功能:将条件应用于跨多个区域的单元格,并计算符合所有条件的次数
    例:查找B2:B5 与 C2:C5区域中同时为是的。
    countifs(B2:B5,"是",C2:C5,"是")

    2、查询计数
    =IF(OR(AF33="Y",AF33="R"),COUNTIF($U$3:U33,U33),0)
    串行使用,并行使用;

    • 操作篇
      ** 1、""发现不可读取内容。是否恢复此内容?
      方法1:文件 --- 另存为 即可解决。
      方法2:光标在最下面的 "工作表标签"上右键"选定全部工作表",然后右键"移动或复制";选择"新工作簿",并勾选"建立复本",确定。 保存并重命名全新的excel表文件即可。

    ** 间隔行颜色变更
    1、选中要设置颜色变化的区域。
    2、点击菜单“格式”—>“条件格式”
    3、选项卡中选择“公式”,输入:=MOD(ROW(),2) =0 , 点击格式,设定颜色。 (偶数行)
    4、重复第2、3项,公式中输入:=MOD(ROW(),2)=1 (奇数行) 公式中的字母 必须大写
    5、确定。

    ** 每一列的列宽相同

    • VBA 暂存篇
      ** Rows(a & ":" & b).Select
      1、计数:用到的最后一行;
      ** 一行语句若是很长,可以通过换行实现
      方法:语句是 一个空格一个下划: _
      : 字符串是一个空格一个& 一个空格加一个下划:

    PART2
    一、VBA中错误捕捉的方法主要有两种

    第一种捕捉方法:

    1、语法:

    On Error GoTo Err_Handle '如果遇到错误就跳转到错误处理代码

       语句xxxxx
    
        Exit Sub/Function(如果没有这条语句,即使没有错误也会执行错误处理语句)
    
     Err_Handle: 语句 xxxxxx
    

    2、举例:

    Sub 查找数字() ’本段代码查找电子表格中有没有数字12

    On Error GoTo Err_Handle
    
       MsgBox Cells.Find(12).Address
    
        Exit Sub   '如果没有这个退出过程语句,会一直执行下去
    

    Err_Handle:

        MsgBox ("不存在该数字")s
    

    End Sub

    PART3:小结1

    1. 解密
      Activesheet.unprotect (“OTAY”): 解密

    2. 取消刷新
      Application.screenupdating = False

    3. 空的说明
      If range(“C7”) or Range(“C8”) = space(1): 只有一个空格
      Msgbox”hello world”

    4. 询问数据是否已经写入,没有的话给出提示;
      if txtName.text = “ ” then
      msgBox “ 请输入机型”
      txtName.SetFocus
      Exit Sub
      End if

    5. Worksheets("Sheet1").Range(Cells(1,1),Cells(7,1)).Value= Worksheets("Sheet2").Range(Cells(1, 2), Cells(7, 2)).Value
      两个工作表间不能用 Range,但一个却可以用,不明所以。 但以下这种格式的却是可以的。
      For i = 1 To 6
      r1.Cells(i, 1) = r4.Cells(i, 1)
      Next i

    6. Range
      Range(Cells(1,2),Cells(3,4)).Clear;
      Range(“A1:D4”).Clear;
      Worksheets(“sheet1”).cells().clear: 清除所有数据
      RANGE中可以直接用 字母 ,但CELLS中不行。

    7. 给对象赋值用 SET,此时不能省略; 给普通变量赋值用LET,但一般可以省略。
      8、 concatenate


    PART4 小结2
    一、条件格式
    公式规则:
    1、=B2<>”” 若是B2不为0,则执行条件格式;
    二、单元格操作
    1、选中某个区域 并进行相关操作
    Range(“D1:F5”).select 选中了这个区域
    selection.clearcontents 删除数据

    三、查找某个文件夹中的文件
    Dim ta As Object, ph$, fn$
    ph = ThisWorkbook.Path & ""
    fn = Dir(ph & "*.xlsx")

    四、函数使用
    1、INstr函数:某个字符在另一个字符串中首次出现的位置。
    例:INstr(1,"hello","o")
    从第一个字符开始,搜索字符o出现的位置,返回值为出现位置对应的数字。

    五、将单元格内容设为固定的值

    1. 选择需要进行限制数据的单元格,然后点 数据 -- 数据有效性 -- 数据有效性 ,会弹出数据有效性提示对话框。
    2. 在数据有效性对话框中选择允许---序列,来源:A,B,C。 中间用半角逗号才行。
      则可以使单元格中的内容只有这三个值。
      15057225715

    六:

    1. 一个单元格可以 =AND(C1>90); 这样这个单元格的值则为 TRUE OR FALSE;
    2. 在条件格式设置中,=C2, 则可以在C2的值不为空时,出现对应的现象。
  • 相关阅读:
    Flask学习笔记(3)-数据库迁移
    windows脚本批处理传输文件到linux脚本
    @TableLogic表逻辑处理注解(逻辑删除)
    使用thumbnailator给图片加水印
    Spring Cloud Stream 使用延迟消息实现定时任务(RabbitMQ)
    centos修改时区,同步时间
    定时清理缓存
    redis基本命令
    运行jar包shell脚本
    硬盘扩容后,建立新分区,将已有的目录挂载到新分区下
  • 原文地址:https://www.cnblogs.com/qev211/p/15420064.html
Copyright © 2011-2022 走看看