![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
VBA
Gordennizaicunzai
这个作者很懒,什么都没留下…
展开
-
VBA说话
用VBA实现excel说话代码: CreateObject("SAPI.SpVoice").Speak Range("单元格").Value原创 2015-11-05 17:32:13 · 890 阅读 · 0 评论 -
VBA exit退出循环和函数
VBA退出循环用Exit语句,在循环中使用Exit语句相当于C/C++的break语句,而在函数中使用Exit语句则相当于C/C++的return语句。 一、退出循环。exit for退出for循环,exit do用于退出do 或 do while循环:'获取非空行Function GetNotNullRow(ByVal iStartRow, ByRef iRow)原创 2018-03-04 21:13:36 · 17496 阅读 · 1 评论 -
VBA函数传递参数方式
VBA函数传递参数值时分为Byval(值传递)和Byref(地址传递),用法上,分别相当于C/C++的值传递使用方法和引用传递使用方法。在VBA中,参数传递的默认方式是Byref,因为本质想法是对于相同命名的参数,在系统中采用同一个数值。'获取非空行Function GetNotNullRow(ByVal iStartRow, ByRef iRow) Dim Rng As Ran原创 2018-03-04 20:58:03 · 23570 阅读 · 0 评论 -
VBA字典(dictionary)
这是我看到的最简单明了的Excel VBA字典(dictionary)的教程,把字典的应用,用短短几百字,全部道尽,简!但精彩!原文如下:当年我(原作者:彭希仁)向LDY版主求教字典的时候,他老人家总结了一句话“呼之即来,挥之即去”即学会d(a)=s 和 s=d(a) 就差不多了,忘记ADD存在。一、定义字典Set d = CreateObject("Scripti转载 2017-06-25 22:19:29 · 14042 阅读 · 3 评论 -
VBA复制粘贴自动筛选后的内容
VBA复制粘贴自动筛选后的内容:Sub sx() If Dir("D:\VBA\xx.xls") <> "" Then Workbooks.Open Filename:="D:\VBA\xx.xls" Else GoTo ERR End If Range("A1").Select With Selection原创 2017-06-28 00:30:01 · 18790 阅读 · 0 评论 -
VBA工作表操控备忘
1、工作表插入:Sub 插入工作表()Sheets.AddEnd SubSub 插入多个工作表()Sheets.Add Count:=2End SubSub 指定位置前插入工作表()Sheets.Add Before:=Sheets("Sheet2")End SubSub 指定位置后插入工作表()Sheets.Add after:=Sheets("Sheet2")End原创 2017-06-22 23:23:43 · 707 阅读 · 0 评论 -
VBA全局变量
VBA的全局变量在模块的开头定义,即可在整个工作簿使用,包括sheet、其它模块、userform等所有控件都可以调用。定义方法是在模块的开头输入Option Explicit,声明你需要定义的变量,比如定义一个Variant变量K:Option ExplicitPublic K As Variant 注意一个VB工程中可添加多个模块,但是在每个模块中声明的全局变量名不原创 2017-06-25 23:05:10 · 35956 阅读 · 0 评论 -
VBA数组完全教程
兰色幻想VBA数组入门教程10集1. 前言:不要把VBA数组想的太神秘,它其实就是一组数字而已。2. 数组的维数:Sub 数组示例() Dim x As Long, y As Long Dim arr(1 To 10, 1 To 3) '创建一个可以容下10行3列的数组空间 For x = 1 To 4 For y = 1 To 3 ar转载 2017-06-25 11:45:15 · 39440 阅读 · 6 评论 -
VBA筛选AutoFilter用法
在面对大量数据时,我们可以使用Excel的筛选功能,滤出我们需要的信息。在本文中,我们先从Excel中的“筛选”命令谈起。 如下图所示的工作表,将活动单元格置于任一数据单元格中,单击功能区中的“排序和筛选”中的“筛选”命令,可以看到表头单元格中出现了筛选下拉箭头。 上述操作录制的VBA代码如下:Sub Macro1()'' Macro1转载 2017-06-24 23:42:10 · 62787 阅读 · 2 评论 -
VBA工作簿操控备忘
CreateFolder MethodSee AlsoCopyFolder Method | DeleteFolder Method | MoveFolder MethodApplies To: FileSystemObject ObjectLanguageJScriptVBScriptShow AllCreates a folder原创 2017-06-22 22:38:08 · 494 阅读 · 0 评论 -
VBA插入行和插入列的作用域
VBA插入行和插入列的作用域,跟是否有ActiveSheet修饰强相关,前面加了ActiveSheet指定作用域则在已经select的工作表生效,否则,会在代码所在的工作簿的工作表生效,例如:Sub aa() Windows("打开excel.xls").Activate Sheets("Sheet2x").Select ActiveSheet.Range("A1").原创 2017-07-01 00:44:51 · 5725 阅读 · 0 评论 -
VBA单元格操控备忘
1、选取单个单元格:Sub 选取单元格B2方法1() Range("B2").SelectEnd SubSub 选取单元格B2方法2() Range("B" & 2).SelectEnd SubSub 选取单元格B2方法3() Cells(2, 2).SelectEnd SubSub 选取单元格B2方法4() Cells(2, "B").SelectEnd Sub原创 2017-06-23 00:23:33 · 665 阅读 · 0 评论 -
VBA数据类型和类型转换函数
一、数据类型1、Boolean--2字节--0~2552、Byte--1字节--True或False3、Integer--2字节--32768~32767(注意范围)4、Long--4字节--2147483648~2147483647(推荐)5、Single--4字节---3.402823E38~-1.401298E-45(负数),1.401298E-45~3.402823E3原创 2017-07-10 23:41:07 · 32945 阅读 · 0 评论 -
VBA进度条
工具箱默认情况下没有进度条控件,需在“工具”->“附加控件”里面添加Microsoft ProgressBar Control,version 6.0,即可在工具箱里面看到进度条控件。创建一个窗体UserForm1,添加一个进度条ProgressBar1和一个标签Label1,即可可以完成VBA进度条设计。eg:经常在一个循环运算中用到进度条,此时可以将循环运算在窗体UserFor原创 2016-03-23 19:49:22 · 8590 阅读 · 0 评论 -
VBA禁止安全警告和屏幕更新
启用宏后的excel保存时如果出现安全警告窗口提示,可以在保存前将个人信息设为false就不会出现警告,要恢复设为true。ActiveWorkbook.RemovePersonalInformation=False如果运行vba时屏幕刷新跳动而你想禁止其跳动,则在程序入口将屏幕刷新设为false,在程序结束是恢复设为true即可,禁止屏幕刷新的另外一个好处是提升程序运算速度。Appl原创 2016-03-22 22:21:42 · 5968 阅读 · 0 评论 -
打开文件对话框
TypeName FunctionReturns a string that provides Variant subtype information about a variable.TypeName(varname)The required varname argument can be any variable.Return ValuesThe TypeN原创 2015-11-29 23:15:57 · 626 阅读 · 0 评论 -
VBA组合框
如果组合框内容既定,则在编程时写入即可:Private Sub ComboBox1_Enter()ComboBox1.DropDownEnd SubPrivate Sub xx_Initialize()ComboBox1.AddItem "小明"ComboBox1.AddItem "小红"ComboBox1.AddItem "小刚"End Sub如果需要在代码外随时修改组原创 2016-01-15 21:40:31 · 3729 阅读 · 0 评论 -
VBA超链接
如在第四列创建超链接:Sub 超链接()Dim X As Integer, Y As IntegerX = Sheets("sheet1").Range("C65536").End(xlUp).RowSheets.Add after:=Sheets(Sheets.Count)Sheets(Sheets.Count).Name = Sheets("sheet1").Cells(X, 4)原创 2016-01-15 20:57:04 · 1590 阅读 · 0 评论 -
VBA动态数组
VBA没有像VC那样专门封装好的动态数组,如果想使用动态数组,可以用如下两步方法实现:1、首先定义一个没有指定大小的数组,不需要给数组标明上界和下界,直接定义即可例如本人在模块定义了一个全局变量字符串数组:Public strMainWorkbookPath As String '主工作簿路径Public arrSourceWorkbookName() As String '源工作簿原创 2018-03-04 21:36:04 · 12657 阅读 · 0 评论