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 '自动调整列宽
程序分行书写
- 若是语句,在要换行的地方加 一个空格 与 一个下划。
- 若是字符串,加 一个空格一个"&"一个空格一个下划
变量定义
'定义字符串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"
VBA---Basic的更多相关文章
- 杂项-软件: VBA(Visual Basic for Applications)
ylbtech-杂项-软件: VBA(Visual Basic for Applications) VBA (Visual Basic宏语言) Visual Basic for Application ...
- VBA: Cant find project or librar
Appears OK to me but the error message " Cant find project or library." suggests it could ...
- VBA续嘘嘘
什么是VBA?它有什么作用? A.实现Excel中没有实现的功能. B.提高运行速度. C.编写自定义函数. D.实现自动化功能. E.通过插入窗体做小型管理软件. VBA在哪里存放的?怎么运行? A ...
- VBA嘘嘘嘘(1)——将Excel数据填入到已存在的Word模板表格(实例应用)
傻瓜可以写出机器读懂得代码,但写出让人能读懂的代码的是优秀程序员 Sub 填充() Application.ScreenUpdating = False 'ScreenUpdating 是控制你的ex ...
- 用EXCEL内嵌的Visual Basic for Application 编程,通过 UGSimple USB-GPIB 控制器来驱动仪器34401A,并从34401A读取数据
现在市场上有很多中USB-GPIB 控制器,或叫 USB 转GPIB链接线. 每种GPIB控制器都有它的 函数库(dll库).各种GPIB 控制器的价钱插别很大.这里以一种价钱较便宜的USB-GPIB ...
- 浅谈VBA
VBA,全称Visual Basic for Applications,其中的一些专业性的解释可以自行搜索,这里就不一一介绍.半年以前,我是不知道VBA的,当我听到VBA的时候,我却迷糊了.VBA是什 ...
- Excel VBA自动添加证书
---恢复内容开始--- 在说这个话题之前,我先解释一下为什么要加数字证书签名,它有什么作用,后面再解释如何添加.首先解释下证书添加的位置,如下图所示: 1.单击左上角的Office 按钮,选择右下角 ...
- 利用VBA查找excel中一行某列第一次不为空与最后一列不为空的列数
昨日同事有需求,想知道每个商品第一次销售的月份,以及最后一次销售的月份. 本想通过什么excel函数来解决,但是找了半天也没找到合适的,最后还是通过VBA来解决吧. 使用方法: Excel工具-宏-V ...
- excel vba 当cell的值变化时 进行判断操作
示例效果: ----------- 在excel的sheet1中, 当A列的值 大于100时 ,其对应B列背景显示红色,C列显示"有数据" 否则,B列背景色正常,C列清空相应的数据 ...
- [转载]如何破解Excel VBA密码
原文链接:http://yhf8377.blog.163.com/blog/static/1768601772012102111032840/ 在此之前,先强调一下,这个方法只是用来破解Excel内部 ...
随机推荐
- Atcoder ZONe Energy Programming Contest C - MAD TEAM(二分)
文章目录 题面 Sample Input Sample output 题解 CODE 别的做法 暴力 Dynamic Programming 题面 你想从 N N N 个候选人中选 3 个人. 每个人 ...
- JZM 的印象笔记 (卷积,分块)
题面 题目背景 大名鼎鼎的 OI 天花板选手 JZM 对自己的好伙伴--印象笔记有些生疏了 题目描述 作为一名 OI 选手,他的笔记中的字母只包含数字0和1. JZM 在印象笔记中找到了一行 N N ...
- 【java】学习路径23-拆箱与装箱
拿Integer类型和int类型来举例子. 装箱,基本给引用.下面的代码相当于Integer i_test = Integer.valueOf("100"); 注意!过程是自动的. ...
- qt C2144 语法错误,需要在类型前添加;(分号)
可能原因:有部分头文件未以";"结尾.
- 手把手教你搭建规范的团队vue项目,包含commitlint,eslint,prettier,husky,commitizen等等
目录 1,前言 2,创建项目 2,安装vue全家桶 3,配置prettier 4,配置eslint 5,配置husky + git钩子 6,配置commitlint 6.1,配置commitlint格 ...
- ubuntu下安装python
一.安装python3.6 sudo add-apt-repository ppa:jonathonf/python-3.6 如显示不能添加"'ppa:~jonathonf/ubuntu/p ...
- C语言输入输出格式符
C语言输入输出格式符 printf函数(格式输出函数) 1.一般格式 printf(格式控制,输出表列) 例如:printf("i=%d,ch=%c\n",i,ch); 说明: ( ...
- 快Key:按一下鼠标【滚轮】,帮你自动填写用户名密码,快速登录,可制作U盘随身(开源免费-附安装文件和源代码)
* 代码以本文所附下载文件包为准,安装文件和源文件包均在本文尾部可下载. * 快Key及本文所有内容仅供交流使用,使用者责任自负,由快Key对使用者及其相关人员或组织造成的任何损失均由使用者自负,与本 ...
- Python-Django模板
前面将hello world输出给浏览器,将数据与 视图 混合在一起,不符合 MVC思想. 模板就是一个文本,用来分离文档的表现形式和内容. 在templates目录下创建一个html模板 然后需要向 ...
- 通俗易懂理解 MySQL B+树、数据存储、索引等知识
文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247485630&idx=1&sn=681c9c0d ...