VBA
Cecilia 王蓓
这个作者很懒,什么都没留下…
展开
-
【Excel VBA】VBE 基础功能
引用工具=》引用:可以加载新的library,类似python中pandas, scipy各种包对象浏览器:可以看到每个类,所包含的对象object基础语句Syntax分行: (空格)_不能直接回车,会报error批量变成commentMethodVBA的语法是object在前,action在后(也就是method), method可以带argument,也可以不带:不...原创 2019-03-23 10:26:50 · 1025 阅读 · 0 评论 -
【Excel VBA】VBE
打开VBE快捷键:F11View => Macros => 特定的<Macro => EditVBE编辑器一个module里,可以有多个macro,每个以sub开头,End sub结束Very hidden => user无法un-hide...原创 2019-03-23 10:27:01 · 599 阅读 · 0 评论 -
【Excel VBA】录制宏 Record Macros
**边录制边编辑宏**录制好的宏,可以手工split为多个sub procedure =》先insert new sub然后将想要的部分copy & paste过来Absolute & relative recording相对应用:录制宏的时候,VBA记录的是当前cell的相对移动距离offset(1,0)绝对引用:记录的是移动到的cell名,同样是向下一格,...原创 2019-03-23 10:26:55 · 763 阅读 · 0 评论 -
【Excel VBA】在VBA中调用函数
在VBA代码中直接调用计算数据EXCEL的表函数也可以直接在VBA中直接调用执行,具体调用格式如下:调用方法1:变量对象= Application.WorksheetFunction.表函数(表函数参数) 实例:Range("d8") = Application.WorksheetFunction.CountIf(Range("A1:A10"), "B")...原创 2019-03-23 11:10:15 · 23812 阅读 · 0 评论 -
【Excel VBA】Message Box
1、作用在消息框中显示信息,并等待用户单击按钮,可返回单击的按钮值(比如“确定”或者“取消”)。通常用作显示变量值的一种方式。2、语法MsgBox(Prompt[,Buttons][,Title][,Helpfile,Context])参数说明:(1)Prompt,必需的参数,为字符串,作为显示在消息框中的消息文本。其最大长度约为1024个字符,由所用字符的宽度决定。如果prompt的内...转载 2019-03-23 12:16:59 · 1751 阅读 · 0 评论 -
【Excel VBA】Loop
With和End with语句俗点讲with的作用就是简化代码,让代码简洁易懂让你不需要输入重复的内容例如:With [A1].RowHeight = 10.ColumnWidth = 15End With相当于[A1].RowHeight = 10[A1].ColumnWidth = 15省去了输入很多[A1]也就是说with中以 . 开头的就相当于WITH...原创 2019-03-23 10:27:06 · 1020 阅读 · 0 评论 -
【Excel VBA】debugging
1. Step info 【F8】调试代码时,用F8可以逐行运行Step info在debug小窗口中也有2.Break point【F9】选中代码行,F9设置为Break point,代码运行到该行自动停止3.Immediate window3.1 debug.print =》即时输出运行结果3.2 query =》以?开头3.3 run a statement4....原创 2019-03-23 16:57:28 · 500 阅读 · 0 评论 -
【Excel VBA】Error handling
1. 直接退出2. On Error Resume Next / On Error Goto 0语句当加上On Error Resume Next语句后,如果后面的程序出现"运行时错误"时,会继续运行,不中断。当加上On Error Goto 0语句后,如果后面的程序出现"运行时错误"时,会显示"出错信息"并停止程序的执行。3. Detailed Error handle将Erro...原创 2019-03-25 14:56:28 · 760 阅读 · 0 评论 -
【Excel VBA】Timer
Timer()函数返回自凌晨00:00起的秒数和毫秒数。Private Sub Constant_demo_Click() msgbox("Time is : " & Now()) msgbox("Timer is: " & Timer())End Sub例子Sub Counter_Looping_for_Timer()'for tab Find (f...原创 2019-03-26 09:51:54 · 2933 阅读 · 0 评论 -
【Exel VBA】FIND()
Find语法:Range.Find(What,After,LookIn,LookAt,SearchOrder,SearchDirection,MatchCase,MatchByte,SearchFormat)参数What,必需指定。代表所要查找的数据,可以为字符串、整数或者其它任何数据类型的数据。对应于“查找与替换”对话框中,“查找内容”文本框中的内容。参数After,可选。指定开...原创 2019-03-26 09:26:26 · 715 阅读 · 0 评论 -
【EXCEL VBA】referencing
Reference to cell注意Range的不同reference方法cells(6,1)是指相对位置,第6行第1列。以后写loop时会用上在RANGE的范围内,找到相对的4th row and 2nd column从A1开始,offset 7行2列,在4个cell(A1:A4)中输入8th使用range的命名Reference to rows & column...原创 2019-03-23 10:26:20 · 296 阅读 · 0 评论 -
【Excel VBA】properties & methods of RANGE
SpecialCells:find special cells 指定类型查找1. To find the end of a rangefind the last row适用于range中间没有空行,End(xlDown)相当于ctrl + down,直接拉到Range最底下Row => get the number of rowanother way to fin...原创 2019-03-23 10:26:35 · 393 阅读 · 0 评论 -
【Excel VBA】variables
Option explicitvb中,Option Explicit意思是:在模块级别中使用,强制显式声明模块中的所有变量,即变量只有声明后才能使用。这样,可以避免变量因名称拼写等错误带来的结果错误,并且“Option Explicit”可以加快程序的运行速度,它节省了在程序运行时动态分配变量存储空间的时间。Data type每种data type都有自己的长度(range),其中var...原创 2019-03-23 10:26:45 · 435 阅读 · 0 评论 -
【Excel VBA】Private sub
Private subPrivate sub 表示私有程序,只能在本模块被调用sub 等同于 Public sub,表示公用程序,可以被其他模块调用特殊情况:如果sub放在sheet表的代码中,无论 private 或 Public,都不能被其他模块直接调用要调用其他sheet的sub,只能用 . 号调用,如:调用sheet2的程序 bb() ,使用语句:sheet2.bb并且,b...原创 2019-03-25 14:56:24 · 4632 阅读 · 0 评论 -
【Excel VBA】Personal Macro Workbook
为什么要存入Personal Macro Workbook?Because this workbook always open at the background whenever you open excel files.这样不管在哪个文件里,都可以使用写好的宏啦先录制一个宏,目的是调取出Personal Macro Workbook找到Personal.xlsb下的Modul...原创 2019-03-25 14:56:18 · 898 阅读 · 0 评论 -
【Excel VBA】For...Next Counter Loop
https://docs.microsoft.com/zh-cn/dotnet/visual-basic/language-reference/statements/for-next-statement原创 2019-03-26 17:26:22 · 587 阅读 · 0 评论 -
【Excel VBA】Do...until / Do...while loop
1. Do untilSub Simple_Do_Until_V1() StartCell = 8 Do Until Range("A" & StartCell).Value = "" Range("B" & StartCell).Value = Range("A" & StartCell).Value + 10 Star...原创 2019-03-26 08:56:19 · 3107 阅读 · 1 评论