• VBA---Basic


    题记:
    之前用VBA做过几个小工具,用来实现办公自动化的。在编写过程中也遇到了一些问题,但最终都通过网友们的分享予以解决,现对其中的一些知识点进行总结。

    common sense

    取消文件刷新Application.ScreenUpdating = False

    活动工作表

    '激活工作表1
    Sheets("Sheet1").Activate   Worksheets("Sheet1").Activate
    Sheets(1).Activate    Worksheets(1).Activate        '用序号表示工作表比较简洁,但不直观; Sheets比WorkSheets简洁;
    

    自动调整行高与列宽

    ActiveSheet.UsedRange.EntireRow.AutoFit            ‘自动调整行高
    ActiveSheet.UsedRange.EntireColumn.AutoFit            '自动调整列宽
    

    程序分行书写

    1. 若是语句,在要换行的地方加 一个空格 与 一个下划。
    2. 若是字符串,加 一个空格一个"&"一个空格一个下划

    变量定义

    '定义字符串strFolder, 整形intRow及工作簿变量wb
    dim strFolder$, intRow%, wb as Workbook
    
    

    控制流

    与其它语言一样,VBA的控制流常用的也是 顺序、条件与循环三种。

    ‘循环: Do
    '当文件名为空时,才停止循环
    Do Until strFileName = ""
        Pass
    Loop
    
    Do while strFileName <> ""
        Pass
    Loop
    
    'For Each... In ...
    ‘循环 活动工作表中的已用单元格
    For Each std In ActiveSheet.UsedRange
    

    错误处理

    '当出现错误时,自动跳到错误处理部分
    On Error GoTo ERROR0
        pass
    ERROR0:
        MsgBox("Something is wrong! ")
    

    工作簿工作表的选取

    '使用此工作簿工作表1的 A列 取消单元格合并
    ThisWorkbook.Sheets(1).Range("A:A").UnMerge 
    
    
    

    操作文件夹与文件

    '弹出选择文件夹的对话框,将此文件夹的 路径赋予 变量strFolder
    FolderPath = GetPath()
    
    'Dir() 函数:用于获取 文件名; 
    ’下例为获取FolderPath目录下的 xls文件名
    FileName = Dir(strFolder & "*.xls")
    Pass
    Dir()            ’通过此函数,可以自动打开下一个Excel文件
    
    
    
    ’.Open()函数:用于打开文件
    '下例为打开一个excel工作簿,并激活其中的一个工作表
    Set wb = Workbooks.Open(FolderPath & "" & FileName) 
    wb.Sheets(“Sheet1”).Activate
    pass
    wb.Close False            ‘不保存修改然后关闭
    
    

    获取工作表中 某列 已用的行数

    此处可以用到 End(xlDown) 或 End(xlUp),此函数的功能与Excel中的快捷键Ctrl + 方向下键Ctrl + 方向上键相同,
    可以定位到该列的最后一个已用 元素。

    
    
    
    

    复制单元格的内容到另一Excel

    情景1:将活动工作表的一个单元格的值 复制到 另一Excel的一个Range

    ActiveSheets.Range("F4").Copy ThisWorkbook.Sheets(1).Range("F" & startRow & ":F" & endRow)
    

    情景2:与楼上相反,将活动工作表中的一个Range区域,复制到另一个Excel的一个区域(选定的是个单元格,会自动变为区域)

    ActiveSheets.Range("F" & startRow & ":F" & endRow.Copy ThisWorkbook.Sheets(1).Cells(startRow, "F")
    

    获取某个单元格的值

    获取某个单元格的值有多种方法,常用的是用 Cells() 与 Range()。

    Range()

    '获取某个单元格
    WorkSheets(1).Range("F4")            '单元格F4(第4行,第F列)中的值
    
    '获取某个区域的单元格
    WorkSheets(1).Range("A1:H8")            '区域的值
    
    

    Split()处理字符串

    Split()函数可以用来处理字符串,它的作用是将字符串按特定的字符分隔,返回一个一维数组。

    s = "abc, d, e, f ,g"
    arr = Split(s, ",")            '结果是一个包含5个项的一维数组
    m = Split(s, ",") (0)        'm为abc
    brr = Split(s, ",",2)         '将s以逗号分为两项,brr(0) = abc, brr(1) = "d,e,f,g"
    
  • 相关阅读:
    团队项目
    四则运算
    关于软件工程的问题
    自我介绍
    各种排序
    2017年03月14日 新模块投产日记
    第一发和技术无关的博客
    分享一款好用的PHP下ID混淆插件
    批量抓取cisco设备配置脚本编写(expect/sed/awk/shell)
    ntp/heartbeat/postfix/dns故障处理记录
  • 原文地址:https://www.cnblogs.com/qev211/p/7535023.html
Copyright © 2020-2023  润新知