VBA
笔记
卖山楂啦prss
数据分析师——唯有知识,让我们免于平庸
展开
-
VBA字典与用户界面设计
使用VBA字典去重复值方法1 '工具-引用-浏览-找到 scrrun.dll-确定Dim dic As New Dictionary方法2 (推荐)Dim dicSet dic = CreateObject("Scripting.Dictionary")原创 2020-03-21 11:40:02 · 490 阅读 · 0 评论 -
类模块
12Sub add_biao(str As String)Dim sht As WorksheetFor Each sht In Sheets If sht.Name = str Then k = k + 1 End IfNextIf k = 0 ThenSet sht1 = Sheets.Add sht1.Name = st...原创 2020-03-16 10:19:00 · 177 阅读 · 0 评论 -
图形、图片、与表单控件
1关于Shapes大家族(1)Sub tt()Dim shp As ShapeDim i As Integeri = 0For Each shp In Sheet1.Shapes i = i + 1 Range("a" & i) = shp.Name '名字 Range("b" & i) = shp.TopLeftCell.Address ...原创 2020-03-15 11:51:42 · 406 阅读 · 0 评论 -
使用ADO操作外部数据
一、使用ADO连接外部Exce数据源1 在VBE界面中 工具—引用勾选Microsoft ActiveX Data Object x.x Library2 连接代码代码壳子Sub test()Dim conn As New ADODB.ConnectionDim SQL As String' 打开连接conn.Open "Provider = Microsoft.AC...原创 2020-03-14 13:43:33 · 574 阅读 · 0 评论 -
VBA中的用户信息交互(GetOpenFilename)
Msgbox参数:Msgbox(提示文字,按钮类型,标题文字,帮助文件,帮助文件索引)示例:MsgBox "你还好吗?", 4 + 32, "打招呼对话框", "C:/a.chm", 01.了解Msgbox的第二个参数Sub tt()MsgBox "爱你哦", 4 + 48, "我是一个标题"End Sub这里4 +48 指显示 是 及 否 按钮和警告图示常数...原创 2020-03-13 11:23:37 · 2934 阅读 · 4 评论 -
窗体与控件
1.窗体双击窗口2.窗体常用事件Private Sub UserForm_Activate()Excel.Application.Visible = False '隐藏excel主程序,只显示窗体End SubPrivate Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)Excel.Ap...原创 2020-03-12 13:10:01 · 439 阅读 · 0 评论 -
使用ActiveX控件
ActiveX控件与表单控件的区别Excel中表单控件和ACTIVEX控件主要区别表单控件只能在excel工作表中添加和使用,插入控件之后,单击右键选择控件,可以设置控件格式和指定宏。activex控件不仅可以在工作表中使用,还可以在VBE编辑器用户窗体中使用,同时具备了很多的属性和事件,这些都是表单控件所不具备的,也是表单控件和activex控件最核心的区别所在。按钮控件...原创 2020-03-11 13:28:38 · 785 阅读 · 0 评论 -
使用VBA数组
通过数组可以大大提高效率通过代码来理解VBA中数组1'定义一维数组并赋值Sub test()Dim arr(1 To 4)arr(1) = "张三"arr(2) = "李四"arr(3) = "王五"End Sub'定义二维数组并赋值Sub test1()Dim arr(1 To 4, 1 To 2)arr(1, 1) = "张三"arr(1, 2) = 30...原创 2020-03-10 11:29:25 · 1200 阅读 · 0 评论 -
Set—Dir—多文件合并—Find—快速拆分
1.将对象赋值到变量(set)Sub ss()Dim i As IntegerDim biao As WorksheetFor i = 2 To 5 Set biao = Sheets.Add biao.Name = Sheet1.Range("a" & i)NextEnd Sub2.Dir函数判断路径中是否有这个文件,即Dir函数返回某文件夹中的所有...原创 2020-03-09 12:01:05 · 707 阅读 · 0 评论 -
自定义函数
创建自定义函数Function()… End FunctionFunction xb(str As String)If str = "男" Then xb = "先生"Else: xb = "女士"End IfEnd FunctionSub zhuanhua()With Sheet1 For i = 2 To .Range("a65536").End(xlUp)...原创 2020-03-08 11:49:39 · 249 阅读 · 0 评论 -
在VBA中使用公式
考试成绩统计&查询系统Application.WorksheetFunction.CountAApplication.WorksheetFunction.CountIfApplication.WorksheetFunction.VLookupOn Error Resume Next 如果出现错误,执行下一行'统计Sub 统计人数()Dim i, k, n, m A...原创 2020-03-07 11:50:32 · 2139 阅读 · 0 评论 -
VBA事件
with语句简化代码,让代码简洁易懂,不需要输入重复的内容with 对象.属性1=属性值.属性2=属性值.属性3=属性值.属性N=属性值end with例如Sub test()Sheet2.Range("a1") = 1Sheet2.Range("a2") = 2Sheet2.Range("a3") = 3Sheet2.Range("a4") = 4End Sub-...原创 2020-03-06 11:59:50 · 1380 阅读 · 0 评论 -
操作单元格对象2
1.拆分表上次的题目:归类每一个部门信息,用的是for循环,效率很低调用清空过程'归类Sub tt()Call t1 '调用t1清空过程Dim i, j, k As IntegerFor j = 2 To Sheets.Count For i = 2 To Sheets(1).Range("d65536").End(xlUp).Row If Sheet...原创 2020-03-05 10:25:03 · 325 阅读 · 0 评论 -
操作单元格对象
Sub test()[c2].Selectcell(2, 3).Select '第2行第3列Range("c2").SelectRange ("c" & i)Range("a1:a10").SelectRange("a1:c10").Select '选择一个区域Range("a1").Value = 10 'range默认属性就是value,可以不写Sheets("...原创 2020-03-04 10:51:20 · 370 阅读 · 0 评论 -
操作工作簿(open/add/save/close)
for iSub ff()Dim i As IntegerFor i = 1 To 10 Range("a" & i) = iNextEnd Subfor each1.循环单元格Sub f()Dim i As IntegerDim dyg As Range 'dyg代表单元格For Each dyg In Range("a1", "a10") 'dyg为...原创 2020-03-03 11:07:08 · 712 阅读 · 0 评论 -
操作工作表
'选中表的三种写法Sub f1()'select选中的意思Sheet1.Select '选中表名字为sheet1的表Sheets(1).Select '选中第一张表Sheets("1月").SelectEnd Sub'单元格Sub f2()[a1] = 6 '对于固定的单元格可以这么写Range ("a" & i) '对于不固定的End Sub'添加表Sub...原创 2020-03-02 11:16:55 · 371 阅读 · 0 评论 -
使用IF进行逻辑判断
知识点1IF...... ThenElseIF.......ThenElse.....End IF 知识点2 单元格对象Range("A" & i)Range("A" & i).select知识点3 设置步长Sub fun()Dim i As IntegerFor i = 1 To 100 Step 7 Range("b" & i) = 1...原创 2020-03-01 10:41:45 · 893 阅读 · 0 评论 -
宏的使用以及for循环
参考:跟着王老师学Excel VBA一、录制宏(表结构相同)宏,就是一个自动完成重复、批量的任务的工具(一组动作的集合)VBA是做宏的工具注意:宏总是针对固定列进行操作,对表结构不一样的会导致错误二、录制相对引用的宏在录制宏时,如果存在对单元格的操作,则在执行该宏时将只能对录制时操作的单元格进行操作,这是因为宏记录的是单元格的绝对引用默认状态下,录制的宏使用绝对单元格...原创 2020-02-29 11:43:20 · 3317 阅读 · 0 评论