VBA学习第十课笔记和代码

合集下载

vba编程代码大全

vba编程代码大全

vba编程代码大全VBA编程代码大全。

VBA是Visual Basic for Applications的缩写,是一种用于Microsoft Office应用程序的编程语言。

通过VBA,用户可以编写自定义的宏和程序,以实现自动化操作和定制功能。

VBA编程在Excel、Word、PowerPoint等Office应用中都有广泛的应用,可以大大提高工作效率和数据处理的灵活性。

本文将为大家详细介绍VBA 编程中常用的代码,帮助大家更好地掌握VBA编程技能。

一、基本操作。

1. 打开VBA编辑器。

在Office应用程序中,按下Alt + F11快捷键即可打开VBA编辑器。

在VBA 编辑器中,可以编写和管理VBA代码。

2. 编写子程序。

使用Sub关键字定义一个子程序,然后在其中编写具体的VBA代码。

例如:Sub HelloWorld()。

MsgBox "Hello, World!"End Sub。

3. 运行宏。

在VBA编辑器中,可以直接运行编写好的宏程序。

也可以在Office应用程序中,通过快捷键或菜单来运行宏。

二、常用代码。

1. 操作单元格。

在Excel中,可以使用VBA来操作单元格,例如:Range("A1").Value = 100。

Range("A1").Interior.Color = RGB(255, 0, 0)。

2. 循环结构。

使用VBA可以编写各种类型的循环结构,例如For循环、Do While循环等,来实现对数据的遍历和处理。

3. 条件判断。

VBA中的If语句可以用来进行条件判断,根据不同的条件执行不同的操作,例如:If Range("A1").Value > 0 Then。

Range("B1").Value = "Positive"Else。

Range("B1").Value = "Negative"End If。

excel2010 vba笔记 (实战教程)(基础实例)

excel2010 vba笔记 (实战教程)(基础实例)

VBA笔记8-211.VBA是什么:微软开发出来的应用程序一种能共享通用的自动化语言,VBA能使已有的应用程序(excel等)自动化,可以创建自定义的解决方案.等同:可以用excel的宏语言来使excel自动化,使用word BASIC使word自动化,等等。

VBA可以称作excel的“遥控器”.此外,如果你愿意,还可以将excel用做开发平台实现应用程序.2.VBA可以实现的功能1. 使重复的任务自动化.2. 自定义excel工具栏,菜单和界面.3. 简化模板的使用.4. 自定义excel,使其成为开发平台.5. 创建报表.6. 对数据进行复杂的操作和分析.3.宏3.1录制简单的宏选择“工具”—“宏”—“录制新宏”—输入宏名—确定—开始录制(状态栏中显示“录制”)—结束宏录制(“工具”—“宏”—“停止录制”。

)*开始录制并非一个按钮,而是你的一系列操作,宏会记录下来变为自己的操作。

3.2执行宏选择任何一个单元格—选择“工具”—“宏”—“宏”(出现“宏”对话框)—选择相应的宏名—“执行”。

3.3查看录制的代码工具”—“宏”—“宏”(显示“宏”对话框)—选择某个宏—“编辑”VBA的编辑器窗口(VBE)Sub 改变颜色() //宏名’’改变颜色Macro’xw 记录的宏2000-6-10’’//以上五行录制时自动生成Range("A5").Select //表示无论选择哪个单元格,最后都只作用于A5With Selection.Interior//设置属性在选择区域的内部(开始录制属性).ColorIndex = 3 //颜色为3号色:红色.Pattern = xlSolid //区域内部图案=纯色(录制时自动生成,可删)PatternColorIndex = xlAutomatic //内部图案底纹颜色=自动(自动生成,可删)End With //结束属性录制End Sub//结束宏录制一个名为练习的宏:Sub 练习()'' 练习宏''With Selection.Borders(xlEdgeLeft).LineStyle = xlContinuous.ColorIndex = 0.TintAndShade = 0.Weight = xlMediumEnd WithWith Selection.Borders(xlEdgeTop).LineStyle = xlContinuous.ColorIndex = 0.TintAndShade = 0.Weight = xlMediumEnd WithWith Selection.Borders(xlEdgeBottom).LineStyle = xlContinuous.ColorIndex = 0.TintAndShade = 0.Weight = xlMediumEnd WithWith Selection.Borders(xlEdgeRight).LineStyle = xlContinuous.ColorIndex = 0.TintAndShade = 0.Weight = xlMediumEnd WithSelection.Borders(xlInsideVertical).LineStyle = xlNoneSelection.Borders(xlInsideHorizontal).LineStyle = xlNoneWith Selection.Interior.Pattern = xlSolid.PatternColorIndex = xlAutomatic.Color = 5296274.TintAndShade = 0.PatternTintAndShade = 0End WithWith Selection.Font.Color = -16727809.TintAndShade = 0End WithEnd Sub3.4为宏指定快捷键创建宏时指定:只须在录制宏时在输入宏名后,在“快捷键”文本框中输入相应的键。

VBA入门笔记

VBA入门笔记

VBA入门笔记Dim ARR2X = Worksheets.Count '工作表数目m = 0For I = 2 To X '遍历工作表,第一张工作表除外。

y = Sheets(I).Range('A65536').End(xlUp).Row '定位工作表中有数据的行ARR1 = Sheets(I).Range('A4:IV' & y) '将子表中A4到有数据行的区域赋值给ARR1数组If m > 0 ThenReDim Preserve ARR2(1 To 256, 1 T o m + y - 3) '定义增大一个二维数组。

Preserve 为ReDim语法的可选的关键字,当改变原有数组最末维的大小时,使用此关键字可以保持数组中原来的数据。

ElseReDim ARR2(1 To 256, 1 To m + y - 3) '定义二维数组,此数组为一个二维数组,256为行号,y-3为列号。

第一次使用。

End IfFor p = 1 To 256For q = 1 To y - 3ARR2(p, q + m) = ARR1(q, p) '将子表中A4到有数据行的区域赋值给ARR2Next qNext pm = UBound(ARR2, 2) '返回ARR2数组的最大下标。

Next ISheets('汇总').Range('a4:IV' & UBound(ARR2, 2) + 3) = Application.Transpose(ARR2)End Sub53.'高亮显示所选单元格Private Sub Worksheet_SelectionChange(ByVal Target As Range)Cells.Interior.ColorIndex = 0Target.Interior.ColorIndex = 45End Sub54.'高亮显示所选单元格所在行Private Sub Worksheet_SelectionChange(ByVal Target As Range)Cells.Interior.ColorIndex = xlNoneWith Selection 'Selection=所选单元格 ActiveCell=活动单元格.EntireRow.Interior.ColorIndex = 44' .EntireColumn.Interior.ColorIndex = 44End WithEnd Sub55.分页符:55.1ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell '插入行分页符55.2ActiveWindow.SelectedSheets.VPageBreaks.Add Before:=ActiveCell '插入列分页符55.3ActiveSheet.ResetAllPageBreaks '删除全部分页符56.设置打印机56.1Application.ActivePrinter = '\\10.202.41.60\HP LaserJet M1005 在 Ne01:' '激光打印机56.2Application.ActivePrinter = '\\10.202.41.34\OKI MICROLINE 6100F 在 Ne00:' '针式打印机56.3Application.ActivePrinter = 'pdfFactory Pro 在 FPP3:' '虚拟打印机57.改变下图J1单元格内容,自动填写表格。

VBA编程基础教程

VBA编程基础教程

VBA编程基础教程一、VBA 语言基础第一节标识符一.定义标识符是一种标识变量、常量、过程、函数、类等语言构成单位的符号,利用它可以完成对变量、常量、过程、函数、类等的引用。

二.命名规则1)字母打头,由字母、数字和下划线组成,如A987b_23Abc2)字符长度小于40,(Excel2002 以上中文版等,可以用汉字且长度可达254 个字符)3)不能与VB 保留字重名,如public, private, dim, goto, next, with, integer, single 等第二节运算符定义:运算符是代表VB某种运算功能的符号。

1)赋值运算符2)数学运算符&、+ (字符连接符)、+(加)、-(减)、Mod(取余)、\(整除)、*(乘)、/(除)、-(负号)、^(指数)3)逻辑运算符Not(非)、And(与)、Or(或)、Xor(异或)、Eqv(相等)、Imp(隐含)4)关系运算符= (相同)、<>(不等)、>(大于)、<(小于)、>=(不小于)、<=(不大于)、Like、Is5)位运算符Not(逻辑非)、And(逻辑与)、Or(逻辑或)、Xor(逻辑异或)、Eqv(逻辑等)、Imp(隐含)第三节数据类型VBA 共有12 种数据类型,具体见下表,此外用户还可以根据以下类型用Type 自定义数据类型。

数据类型类型标识符字节字符串型String $ 字符长度(0-65400)字节型Byte 无 1布尔型Boolean 无 2整数型Integer % 2长整数型Long & 4单精度型Single ! 4双精度型Double # 8日期型Date 无8 公元100/1/1-99/12/31货币型Currency @ 8小数点型Decimal 无14变体型Variant 无以上任意类型,可变对象型Object 无 4 第四节变量与常量1)VBA 允许使用未定义的变量,默认是变体变量。

vba基础代码

vba基础代码

VBA基础代码1. 什么是VBA基础代码?VBA(Visual Basic for Applications)基础代码是一种程序设计语言,用于在Microsoft Office应用程序中自动执行任务和操作。

VBA是一种类似于Visual Basic的语言,可以编写宏和自定义函数来增强和定制Office应用程序的功能。

2. VBA的作用和优势2.1 作用•自动化重复性任务:通过VBA基础代码,可以编写宏来执行重复性任务,比如数据处理、报表生成等。

•定制化功能:VBA可以用于定制化各种功能,例如自定义菜单、工具栏、快捷键等,以适应个人或组织的需求。

•与其他应用程序的交互:VBA可以与其他应用程序进行交互,比如从Excel 中调用Word的功能,或者从Access中连接到外部数据库。

2.2 优势•简单易学:VBA基础代码基于Visual Basic语言,语法简单易懂,上手快。

•与Office应用程序紧密集成:VBA可以直接在Office应用程序中编写、编辑和执行代码,无需切换到其他集成开发环境。

•强大的功能扩展:VBA可以扩展Office应用程序的功能,通过编写自定义宏和函数,提供更多的功能和灵活性。

3. VBA基础代码入门3.1 启用开发者选项要使用VBA基础代码,首先需要启用Office应用程序的开发者选项。

步骤如下:1. 点击Office应用程序的“文件”菜单。

2. 选择“选项”。

3. 在“自定义功能区”选项卡中,勾选“开发者”复选框。

4. 点击“确定”按钮。

3.2 打开VBA编辑器1.点击Office应用程序的“开发者”选项卡。

2.在“代码”组中,点击“Visual Basic”按钮,打开VBA编辑器。

3.3 编写VBA基础代码在VBA编辑器中,可以编写、编辑和执行VBA基础代码。

以下是一个简单的示例代码,用于在Excel中显示一个消息框:Sub HelloWorld()MsgBox "Hello, World!"End Sub以上代码定义了一个名为HelloWorld的子过程(Sub),其中使用MsgBox函数显示一个消息框。

VBA初学者的必备知识点整理

VBA初学者的必备知识点整理

VBA初学者的必备知识点整理VBA(Virtual Basic for Applications)是一种微软的编程语言,用于扩展和自定义Microsoft Office套件中的应用程序。

对于初学者来说,学习VBA可能会感到有些困惑和挑战。

为了帮助初学者更好地掌握VBA,本文将整理一些VBA初学者的必备知识点,旨在为初学者提供一个良好的起点。

一、了解VBA的基本概念和用途VBA是一种面向对象的编程语言,用于自定义和扩展Microsoft Office套件中的各种应用程序,如Excel、Word和PowerPoint等。

通过使用VBA,用户可以编写自己的代码来增强这些应用程序的功能。

VBA的代码可以实现自动化任务、数据处理、生成报告等各种功能。

二、掌握VBA的开发环境VBA的开发环境是Microsoft Office套件自带的“Visual Basic for Applications编辑器”(简称VBE)。

学习VBA之前,需要了解VBE的基本操作和功能,如打开VBE、新建模块、调试代码等。

熟悉VBE的使用将有助于更好地编写和调试VBA代码。

三、认识VBA的基本语法和数据类型VBA的语法与其他编程语言类似,包括变量声明、条件语句、循环语句和函数等。

了解VBA的基本语法和数据类型是学习VBA的前提。

常见的VBA数据类型包括整数、字符串、布尔值和日期等,每种数据类型都有其特定的用途和操作方法。

四、掌握VBA的操作对象和方法VBA通过操作对象和调用对象的方法来实现各种功能。

在VBA中,各种应用程序中的对象都有特定的属性和方法。

例如,在Excel中,可以通过VBA来操作工作簿、工作表、单元格等对象,实现自动化数据处理和报告生成。

学习VBA的过程中,需要掌握各种对象和方法的基本概念和用法。

五、学会使用VBA的控制结构和函数VBA提供了丰富的控制结构和函数,使编写代码更加灵活和高效。

控制结构包括条件语句(如If语句和Select Case语句)和循环语句(如For循环和Do循环),可以根据条件和循环来执行不同的操作。

快速学习VBA编程语言基础知识

快速学习VBA编程语言基础知识

快速学习VBA编程语言基础知识VBA(Visual Basic for Applications)是一种宏编程语言,是Microsoft Office套件中的一部分,通过使用VBA,用户可以自动化执行各种任务,增加工作效率。

本文将带你快速学习VBA编程语言的基础知识,包括VBA的概述、变量和数据类型、控制语句、函数和子程序等内容。

第一章:VBA的概述VBA是一种基于Visual Basic语言的宏编程语言,它可以用于编写自动化任务、自定义功能和处理数据。

VBA可以与Office套件中的各种应用程序(如Excel、Word和PowerPoint等)进行集成,使用户能够通过编程方式操作这些应用程序。

VBA的语法与VB语言非常相似,学习VBA可以帮助你更好地理解VB语言的工作原理。

第二章:变量和数据类型在VBA中,变量用于存储数据,数据类型定义了变量可以存储的数据种类。

VBA中常见的数据类型包括整型、浮点型、字符串型、布尔型和日期型等。

本章将详细介绍这些数据类型的特点和使用方法,并教你如何声明和初始化变量。

第三章:控制语句控制语句是VBA编程中用于决策和控制程序流程的关键工具。

本章将介绍VBA中的条件语句(如If语句和Select Case语句)和循环语句(如For循环和Do循环),并给出实际案例来说明它们的用法。

了解和掌握控制语句,可以使你的程序更加灵活和高效。

第四章:函数和子程序函数和子程序是一种封装代码的方式,可以重复使用,并且可以实现复杂的功能。

VBA内置了许多常用的函数(如字符串处理函数和数学函数等),同时也允许用户创建自定义函数和子程序。

本章将介绍如何使用VBA内置函数和如何创建自定义函数和子程序,通过实例帮助你理解其用法。

第五章:错误处理在编程过程中,错误是不可避免的。

VBA提供了一套完善的错误处理机制,可以帮助用户发现和处理程序中的错误。

本章将介绍错误处理的基本原则和常用的处理方法,例如使用On Error语句和Err对象来捕获和处理错误。

VBA常用技巧代码解析yuanz...

VBA常用技巧代码解析yuanz...

VBA常用技巧目录VBA常用技巧-------------------------------------------------------------------------------------1第1章Range(单元格)对象--------------------------------------------------------10技巧1单元格的引用方法-------------------------------------------------------10 1-1使用Range属性----------------------------------------------------------101-2使用Cells属性------------------------------------------------------------111-3使用快捷记号------------------------------------------------------------111-4使用Offset属性----------------------------------------------------------121-5使用Resize属性----------------------------------------------------------131-6使用Union方法----------------------------------------------------------141-7使用UsedRange属性----------------------------------------------------141-8使用CurrentRegion属性------------------------------------------------15技巧2选定单元格区域的方法-------------------------------------------------15 2-1使用Select方法----------------------------------------------------------152-2使用Activate方法--------------------------------------------------------162-3使用Goto方法------------------------------------------------------------17技巧3获得指定行、列中的最后一个非空单元格--------------------------17技巧4定位单元格----------------------------------------------------------------20技巧5查找单元格----------------------------------------------------------------21 5-1使用Find方法------------------------------------------------------------215-2使用Like运算符---------------------------------------------------------25技巧6替换单元格内字符串----------------------------------------------------26技巧7复制单元格区域----------------------------------------------------------27技巧8仅复制数值到另一区域-------------------------------------------------308-1使用选择性粘贴---------------------------------------------------------308-2直接赋值的方法---------------------------------------------------------31技巧9单元格自动进入编辑状态----------------------------------------------32技巧10禁用单元格拖放功能---------------------------------------------------32技巧11单元格格式操作---------------------------------------------------------33 11-1单元格字体格式设置--------------------------------------------------33 11-2设置单元格内部格式--------------------------------------------------35 11-3为单元格区域添加边框-----------------------------------------------36 11-4灵活设置单元格的行高列宽-----------------------------------------38技巧12单元格中的数据有效性------------------------------------------------39 12-1在单元格中建立数据有效性----------------------------------------39 12-2判断单元格是否存在数据有效性----------------------------------41 12-3动态的数据有效性----------------------------------------------------41 12-4自动展开数据有效性下拉列表-------------------------------------43技巧13单元格中的公式---------------------------------------------------------44 13-1在单元格中写入公式-------------------------------------------------44 13-2检查单元格是否含有公式-------------------------------------------45 13-3判断单元格公式是否存在错误-------------------------------------46 13-4取得单元格中公式的引用单元格----------------------------------47 13-5将单元格中的公式转换为数值-------------------------------------48技巧14单元格中的批注---------------------------------------------------------49 14-1判断单元格是否存在批注-------------------------------------------49 14-2为单元格添加批注----------------------------------------------------50 14-3删除单元格中的批注-------------------------------------------------51技巧15合并单元格操作---------------------------------------------------------5215-1判断单元格区域是否存在合并单元格----------------------------5215-2合并单元格时连接每个单元格的文本----------------------------5315-3合并内容相同的连续单元格----------------------------------------5415-4取消合并单元格时在每个单元格中保留内容-------------------56技巧16高亮显示单元格区域---------------------------------------------------57技巧17双击被保护单元格时不显示提示消息框---------------------------58技巧18重新计算工作表指定区域---------------------------------------------60技巧19录入数据后单元格自动保护------------------------------------------60技巧20工作表事件Target参数的使用方法----------------------------------62 20-1使用单元格的Address 属性------------------------------------------6220-2使用Column属性和Row属性----------------------------------------6320-3使用Intersect方法------------------------------------------------------63第2章Worksheet(工作表)对象---------------------------------------------------65技巧21引用工作表的方式------------------------------------------------------65 21-1使用工作表的名称----------------------------------------------------6521-2使用工作表的索引号-------------------------------------------------6521-3使用工作表的代码名称----------------------------------------------6621-4使用ActiveSheet属性引用活动工作表-----------------------------66技巧22选择工作表的方法------------------------------------------------------67技巧23遍历工作表的方法------------------------------------------------------68 23-1使用For...Next 语句---------------------------------------------------6823-2使用For Each...Next 语句---------------------------------------------70技巧24在工作表中上下翻页---------------------------------------------------71技巧25工作表的添加与删除---------------------------------------------------72技巧26禁止删除指定工作表---------------------------------------------------76技巧27自动建立工作表目录---------------------------------------------------78技巧28工作表的深度隐藏------------------------------------------------------80技巧29防止更改工作表的名称------------------------------------------------82技巧30工作表中一次插入多行------------------------------------------------83技巧31删除工作表中的空行---------------------------------------------------84技巧32删除工作表的重复行---------------------------------------------------86技巧33定位删除特定内容所在的行------------------------------------------88技巧34判断是否选中整行------------------------------------------------------89技巧35限制工作表的滚动区域------------------------------------------------90技巧36复制自动筛选后的数据区域------------------------------------------91技巧37使用高级筛选获得不重复记录---------------------------------------93技巧38工作表的保护与解除保护---------------------------------------------94技巧39奇偶页打印---------------------------------------------------------------97第3章Wordbook(工作簿)对象---------------------------------------------------99技巧40工作簿的引用方法------------------------------------------------------99 40-1使用工作簿的名称----------------------------------------------------9940-2使用工作簿的索引号-------------------------------------------------9940-3使用ThisWorkbook---------------------------------------------------10040-4使用ActiveWorkbook------------------------------------------------101技巧41新建工作簿文件--------------------------------------------------------101技巧42打开指定的工作簿-----------------------------------------------------103技巧43判断指定工作簿是否打开--------------------------------------------106 43-1遍历Workbooks集合方法-------------------------------------------10643-2错误处理方法---------------------------------------------------------106技巧44禁用宏则关闭工作簿--------------------------------------------------107技巧45关闭工作簿不显示保存对话框--------------------------------------11145-1使用Close方法关闭工作簿-----------------------------------------11145-2单击工作簿关闭按钮关闭工作簿---------------------------------113技巧46禁用工作簿的关闭按钮-----------------------------------------------113技巧47保存工作簿的方法-----------------------------------------------------115 47-1使用Save方法---------------------------------------------------------11547-2直接保存为另一文件名---------------------------------------------11547-3保存工作簿副本------------------------------------------------------115技巧48保存指定工作表为工作簿文件--------------------------------------116技巧49打印预览时不触发事件-----------------------------------------------118技巧50设置工作簿文档属性信息--------------------------------------------120技巧51不打开工作簿取得其他工作簿数据-------------------------------121 51-1使用公式---------------------------------------------------------------12151-2使用GetObject函数---------------------------------------------------12251-3隐藏Application对象-------------------------------------------------12351-4使用ExecuteExcel4Macro方法-------------------------------------12451-5使用SQL连接---------------------------------------------------------125技巧52返回窗口的可视区域地址--------------------------------------------126第4章Shape(图形)、Chart(图表)对象----------------------------------------128技巧53在工作表中添加图形--------------------------------------------------128技巧54导出工作表中的图片--------------------------------------------------133技巧55在工作表中添加艺术字-----------------------------------------------135技巧56遍历工作表中的图形--------------------------------------------------137技巧57移动、旋转图片---------------------------------------------------------139技巧58工作表中自动插入图片-----------------------------------------------140技巧59固定工作表中图形的位置--------------------------------------------143技巧60使用VBA自动生成图表----------------------------------------------145技巧61使用独立窗口显示图表-----------------------------------------------149技巧62导出工作表中的图表--------------------------------------------------150技巧63多图表制作--------------------------------------------------------------151第5章Application对象------------------------------------------------------------155技巧64取得Excel版本信息----------------------------------------------------155技巧65取得当前用户名称-----------------------------------------------------156技巧66Excel中的“定时器”-----------------------------------------------------156技巧67设置活动打印机的名称-----------------------------------------------158技巧68屏蔽、改变组合键的功能---------------------------------------------159技巧69设置Excel窗口标题栏-------------------------------------------------160技巧70自定义Excel状态栏----------------------------------------------------161技巧71灵活退出Excel----------------------------------------------------------162技巧72隐藏Excel主窗口-------------------------------------------------------163 72-1设置Application对象的Visible属性-------------------------------16372-2将窗口移出屏幕------------------------------------------------------16472-3设置工作簿作为加载宏运行---------------------------------------165第6章使用对话框-----------------------------------------------------------------167技巧73使用Msgbox函数-------------------------------------------------------167 73-1显示简单的提示信息------------------------------------------------16773-2定制个性化的消息框------------------------------------------------16873-3获得消息框的返回值------------------------------------------------16973-4在消息框中排版------------------------------------------------------17173-5对齐消息框中显示的信息------------------------------------------172技巧74自动关闭的消息框-----------------------------------------------------17474-1使用WshShell.Popup方法显示消息框----------------------------17474-2使用API函数显示消息框-------------------------------------------175技巧75使用InputBox函数-----------------------------------------------------176 75-1简单的数据输入------------------------------------------------------17675-2使用对话框输入密码------------------------------------------------178技巧76使用InputBox方法-----------------------------------------------------180 76-1输入指定类型的数据------------------------------------------------18076-2获得单元格区域地址------------------------------------------------182技巧77内置对话框--------------------------------------------------------------183 77-1调用内置的对话框---------------------------------------------------18377-2获取选定文件的文件名---------------------------------------------18677-3使用“另存为”对话框------------------------------------------------188技巧78调用操作系统“关于”对话框-----------------------------------------190第7章菜单和工具栏--------------------------------------------------------------192技巧79在菜单中添加菜单项--------------------------------------------------192技巧80在菜单栏指定位置添加菜单-----------------------------------------195技巧81屏蔽和删除工作表菜单-----------------------------------------------197技巧82改变系统菜单的操作--------------------------------------------------198技巧83定制自己的系统菜单--------------------------------------------------199技巧84改变菜单按钮图标-----------------------------------------------------205技巧85右键快捷菜单增加菜单项--------------------------------------------206技巧86自定义右键快捷菜单--------------------------------------------------207技巧87使用右键菜单制作数据有效性--------------------------------------210技巧88禁用工作表右键菜单--------------------------------------------------212技巧89创建自定义工具栏-----------------------------------------------------213技巧90自定义工具栏按钮图标-----------------------------------------------216技巧91自定义工作簿图标-----------------------------------------------------217技巧92移除工作表的最小最大化和关闭按钮----------------------------218技巧93在工具栏上添加下拉列表框-----------------------------------------219技巧94屏蔽工作表的复制功能-----------------------------------------------221技巧95禁用工具栏的自定义--------------------------------------------------222技巧96屏蔽所有的命令栏-----------------------------------------------------225技巧97恢复Excel的命令栏----------------------------------------------------226第8章控件与用户窗体-----------------------------------------------------------228技巧98限制文本框的输入-----------------------------------------------------228技巧99文本框添加右键快捷菜单--------------------------------------------230技巧100文本框回车自动输入------------------------------------------------234技巧101自动选择文本框内容------------------------------------------------235技巧102设置文本框数据格式------------------------------------------------236技巧103限制文本框的输入长度---------------------------------------------238技巧104将光标返回文本框中------------------------------------------------239技巧105文本框的自动换行---------------------------------------------------241技巧106多个文本框数据相加------------------------------------------------243技巧107控件跟随活动单元格------------------------------------------------244技巧108高亮显示按钮---------------------------------------------------------245技巧109组合框和列表框添加列表项的方法------------------------------247109-1使用RowSource属性添加列表项---------------------------------247 109-2使用List属性添加列表项------------------------------------------248 109-3使用AddItem方法添加列表项------------------------------------249技巧110去除列表框数据源的重复值和空格------------------------------251技巧111移动列表框条目------------------------------------------------------253技巧112允许多项选择的列表框---------------------------------------------256技巧113多列组合框和列表框的设置---------------------------------------259 113-1多列组合框和列表框添加列表项--------------------------------259 113-2多列列表框写入工作表--------------------------------------------261技巧114输入时逐步提示信息------------------------------------------------263技巧115二级组合框------------------------------------------------------------270技巧116使用DTP控件输入日期----------------------------------------------272技巧117使用RefEdit控件选择区域------------------------------------------275技巧118如何注册控件---------------------------------------------------------276技巧119遍历控件的方法------------------------------------------------------279 119-1使用名称中的变量遍历控件--------------------------------------279 119-2使用对象类型遍历控件--------------------------------------------281 119-3使用程序标识符遍历控件-----------------------------------------282 119-4使用名称中的变量遍历图形--------------------------------------283 119-5使用FormControlType属性遍历图形----------------------------284技巧120使微调框最小变动量小于1-----------------------------------------285技巧121不打印工作表中的控件---------------------------------------------287 121-1设置控件格式--------------------------------------------------------287 121-2设置控件的printobjcet属性----------------------------------------289技巧122在框架中使用滚动条------------------------------------------------289技巧123使用多页控件---------------------------------------------------------291技巧124标签文字垂直居中对齐---------------------------------------------293技巧125使用TabStrip控件-----------------------------------------------------295技巧126显示GIF动画图片----------------------------------------------------297技巧127播放Flash文件---------------------------------------------------------300技巧128在工作表中添加窗体控件------------------------------------------302 128-1使用AddFormControl方法-----------------------------------------303 128-2使用Add方法---------------------------------------------------------305技巧129在工作表中添加ActiveX控件--------------------------------------307 129-1使用Add方法---------------------------------------------------------308 129-2使用AddOLEObject方法-------------------------------------------310技巧130使用spreadsheet控件-------------------------------------------------311技巧131使用Listview控件-----------------------------------------------------314 131-1使用Listview控件显示数据列表---------------------------------314131-2在Listview控件中使用复选框------------------------------------317 131-3调整Listview控件的行距------------------------------------------319 131-4在Listview控件中排序---------------------------------------------322 131-5-----------------------------------------------Listview控件的图标设置323技巧132调用非模式窗体------------------------------------------------------326技巧133进度条的制作---------------------------------------------------------328 133-1使用进度条控件-----------------------------------------------------328 133-2使用标签控件--------------------------------------------------------330技巧134使用TreeView控件显示层次---------------------------------------333技巧135用户窗体添加图标---------------------------------------------------337技巧136用户窗体添加最大最小化按纽------------------------------------339技巧137禁用窗体标题栏的关闭按钮---------------------------------------340技巧138屏蔽窗体标题栏的关闭按钮---------------------------------------341技巧139无标题栏和边框的窗体---------------------------------------------343技巧140制作年月选择窗体---------------------------------------------------344技巧141自定义窗体中的鼠标指针类型------------------------------------347技巧142调整窗体的显示位置------------------------------------------------348技巧143由鼠标确定窗体显示位置------------------------------------------350技巧144用户窗体的打印------------------------------------------------------351技巧145使用自定义颜色设置窗体颜色------------------------------------353技巧146在窗体中显示图表---------------------------------------------------354 146-1使用Export方法------------------------------------------------------354146-2使用API函数---------------------------------------------------------356技巧147窗体运行时调整控件大小------------------------------------------357技巧148在用户窗体上添加菜单---------------------------------------------360技巧149在用户窗体上添加工具栏------------------------------------------364技巧150使用代码添加窗体及控件------------------------------------------369技巧151用户窗体的全屏显示------------------------------------------------375151-1设置用户窗体为应用程序的大小--------------------------------375151-2根据屏幕分辨率进行设置-----------------------------------------376技巧152在用户窗体上添加状态栏------------------------------------------377第9章函数的使用-----------------------------------------------------------------381技巧153调用工作表函数求和------------------------------------------------381技巧154查找最大、最小值----------------------------------------------------381技巧155不重复值的录入------------------------------------------------------383技巧156获得当月的最后一天------------------------------------------------385技巧157四舍五入运算---------------------------------------------------------386 157-1极小值修正法--------------------------------------------------------386157-2调用工作表函数法--------------------------------------------------387技巧158使用字符串函数------------------------------------------------------387技巧159使用日期函数---------------------------------------------------------389技巧160判断是否为数值------------------------------------------------------393技巧161格式化数值、日期和时间-------------------------------------------394技巧162个人所得税自定义函数---------------------------------------------396技巧163人民币大写函数------------------------------------------------------398技巧164列号转换为列标------------------------------------------------------400技巧165判断工作表是否为空表---------------------------------------------401技巧166查找指定工作表------------------------------------------------------402技巧167查找指定工作簿是否打开------------------------------------------404技巧168取得应用程序的安装路径------------------------------------------404技巧169数组的使用------------------------------------------------------------406 169-1代码运行时创建数组-----------------------------------------------406169-2文本转换为数组-----------------------------------------------------407169-3使用动态数组去除重复值-----------------------------------------409第10章文件操作--------------------------------------------------------------------412技巧170导入文本文件---------------------------------------------------------412 170-1使用查询表导入-----------------------------------------------------412170-2使用Open 语句导入------------------------------------------------413170-3使用OpenText方法--------------------------------------------------415技巧171将数据写入文本文件------------------------------------------------416 171-1使用Print # 语句-----------------------------------------------------416171-2另存为文本文件-----------------------------------------------------418技巧172文件修改的日期和时间---------------------------------------------419技巧173查找文件或文件夹---------------------------------------------------420技巧174获得当前文件夹的名称---------------------------------------------422技巧175创建和删除文件夹---------------------------------------------------422技巧176重命名文件或文件夹------------------------------------------------423技巧177复制指定的文件------------------------------------------------------424技巧178删除指定的文件------------------------------------------------------425技巧179搜索特定的文件------------------------------------------------------426技巧180使用WSH处理文件---------------------------------------------------428 180-1获取文件信息--------------------------------------------------------428180-2查找文件--------------------------------------------------------------430180-3移动文件--------------------------------------------------------------431180-4复制文件--------------------------------------------------------------431180-5删除文件--------------------------------------------------------------432180-6创建文件夹-----------------------------------------------------------433180-7复制文件夹-----------------------------------------------------------434180-8移动文件夹-----------------------------------------------------------435180-9删除文件夹-----------------------------------------------------------435180-10-----------------------------------------------------------导入文本文件436180-11-----------------------------------------------------------创建文本文件438第11章其他应用--------------------------------------------------------------------441技巧181取得电脑名称---------------------------------------------------------441技巧182取得逻辑盘序列号---------------------------------------------------442技巧183使用API取得硬盘信息----------------------------------------------443技巧184使用数字签名---------------------------------------------------------444技巧185暂停代码的运行------------------------------------------------------449技巧186定时关机---------------------------------------------------------------450技巧187打开指定的网页------------------------------------------------------451技巧188VBE的操作-------------------------------------------------------------452 188-1添加模块和过程-----------------------------------------------------452 188-2建立事件过程--------------------------------------------------------454 188-3模块的导入与导出--------------------------------------------------456 188-4删除宏代码-----------------------------------------------------------457技巧189保护VBA代码---------------------------------------------------------459 189-1设置工程密码--------------------------------------------------------459 189-2设置“工程不可查看”-----------------------------------------------460技巧190优化代码---------------------------------------------------------------462 190-1关闭屏幕刷新--------------------------------------------------------462 190-2使用工作表函数-----------------------------------------------------464 190-3使用更快的单元格操作方法--------------------------------------465 190-4使用With语句引用对象--------------------------------------------466 190-5少用激活或选择语句-----------------------------------------------468技巧191取得文件的基本名称------------------------------------------------469技巧192防止用户中断代码运行---------------------------------------------470技巧193加班费计算表---------------------------------------------------------472技巧194制作发放条------------------------------------------------------------498技巧195费用统计表------------------------------------------------------------501技巧196职工花名册------------------------------------------------------------516技巧197收据系统---------------------------------------------------------------529技巧198职工考勤系统---------------------------------------------------------567巧1巧Range(单元格)对象Range对象是Excel应用程序中最常用的对象,一个Range对象代表一个单元格、一行、一列、包含一个或者更多单元格区域(可以是连续的单元格,也可以是不连续的单元格)中选定的单元格,甚至是多个工作表上的一组单元格,在操作Excel内的任何区域之前都需要将其表示为一个Range对象,然后使用该Range对象的方法和属性。

VBA笔记

VBA笔记

VBA学习笔记记录1、判断语句Sub判断1()'单条件判断If Range("a1").Value>0ThenRange("b1")="正数"ElseRange("b1")="负数或0"End IfEnd SubSub判断2()'多条件判断If Range("a1").Value>0ThenRange("b1")="正数"ElseIf Range("a1")=0ThenRange("b1")="等于0"ElseIf Range("B1")<=0ThenRange("b1")="负数"End IfEnd SubSub多条件判断2()If Range("a1")<>""And Range("a2")<>""ThenRange("a3")=Range("a1")*Range("a2")End IfEnd Sub2、If函数判断Sub判断4()Range("a3")=IIf(Range("a1")<=0,"负数或零","负数")End Sub3、select判断Sub判断1()'单条件判断Select Case Range("a1").ValueCase Is>0//意思就是如果A1中的数>0b1就为正数或者为负数或零Range("b1")="正数"Case ElseRange("b1")="负数或0"End SelectEnd SubSub判断2()'多条件判断//意思就是如果A1中的数>0b1就为正数等于0为0或者为负数Select Case Range("a1").ValueCase Is>0Range("b1")="正数"Case Is=0Range("b1")="0"Case ElseRange("b1")="负数"End SelectEnd SubSub判断3()If Range("a3")<"G"ThenMsgBox"A-G"End IfEnd Sub4、判断范围Sub if区间判断()If Range("a2")<=1000ThenRange("b2")=0.01ElseIf Range("a2")<=3000ThenRange("b2")=0.03ElseIf Range("a2")>3000ThenRange("b2")=0.05End IfEnd SubSub select区间判断()Select Case Range("a2").ValueCase0To1000Range("b2")=0.01Case1001To3000Range("b2")=0.03Case Is>3000Range("b2")=0.05End SelectEnd Sub5、VBA对象'VBA对象'VBA中的对象其实就是我们操作的具有方法、属性的excel中支持的对象'Excel中的几个常用对象表示方法'1、工作簿'Workbooks代表工作簿集合,所有的工作簿,Workbooks(N),表示已打开的第N个工作簿'Workbooks("工作簿名称")'ActiveWorkbook正在操作的工作簿'ThisWorkBook'代码所在的工作簿'2、工作表''Sheets("工作表名称")'Sheet1表示第一个插入的工作表,Sheet2表示第二个插入的工作表....'Sheets(n)表示按排列顺序,第n个工作表'ActiveSheet表示活动工作表,光标所在工作表'worksheet也表示工作表,但不包括图表工作表、宏工作表等。

vba常用代码大全

vba常用代码大全

前言我们平时在工作表xx的公式xx常常使用函数,Excel自带的常用的函数多达300多个,功能强大,丰富多彩,但是在VBAxx不能直接应用,必须在函数名前面加上对象,比如:Application.WorksheetFunction.Sum(arg1,arg2,arg3)。

而能在VBAxx直接应用的函数也有几十个,下面将逐一详细介绍常用的40个VBA函数,以供大家学习参考。

第1.1例ASC函数一、题目:要求编写一段代码,运行后得到字符串”Excel”的首字母和”e”的ASCII值。

二、代码:Sub示例_1_01()Dim myNum1%, myNum2%myNum1 = Asc("Excel")'返回69myNum2 = Asc("e")'返回101[a1] = "myNum1= ": [b1] = myNum1[a2] = "myNum2= ": [b2] = myNum2End Sub三、代码详解1、Sub示例_1_01():宏程序的开始语句。

2、Dim myNum1%, myNum2%:变量myNum1和myNum2声明为整型变量。

也可以写为Dim myNum1 As Integer。

Integer变量存储为16位(2个字节)的数值形式,其范围为-32,768到32,767之间。

Integer的类型声明字符是百分比符号(%)。

3、myNum1 = Asc("Excel"):把Asc函数的值赋给变量myNum1。

Asc函数返回一个Integer,代表字符串中首字母的字符的ASCII代码。

语法Asc(string)必要的string(字符串)参数可以是任何有效的字符串表达式。

如果string中没有包含任何字符,则会产生运行时错误。

4、myNum2 = Asc("e"):把Asc函数的值赋给变量myNum2。

VBA入门笔记

VBA入门笔记

VBA入门笔记VBA始终是我绕不过的坎,因此利用了一些休息的时间着重的学习了语法。

学习以及运行环境在Office2019 Excel中进行。

VBA和VB语法大致相同底层应该是有差异的,学习VBA之后可以一边看着文档一边尝试VB窗体开发或者操作数据库,个人感受VBA 入门比较简单,和其他语言一样,入门简单精通难对于我们这个群体而言也没有必要要求自己达到程序员水平;坊间传言VBA要过时了,未来office中的脚本语言将会被python 或者JavaScript替代,可能以后会,但是VBA庞大的用户群体使用习惯不是一朝一夕就能改变的,除过officen内置了VBA 还有WPS 大名鼎鼎的CAD 工控界上位机WINCC FT-View,所以VBA还暂时不会淘汰不过!Protal WinCC Unifled是西门子最新的SCADA软件,其脚本语言已变成了JavaScript,IT&OT的界限将逐渐模糊……VBA的基本数据类型比较常用的数据类型主要有整型和浮点型,字符串说明数据类型简化后的申明符号占用字节数字节型Byte 1整型Integer % 2长整型Long & 4单精度浮点型Single ! 4双精度浮点型Double # 8货币型Currency @ 8字符型String $ 每字符占1字节布尔型Boolean日期型Date 8变体型Variant 不确定对象型Object 4字符串string型是指一切可以打印的字符与字符串一个西文字符占用一个字节,一个中文占用2字节•边长字符串随着赋值的变化而改变长度的字符串变量•定长字符串字符变量在声明时候进行限制例如: Dim str As String*10 (类型关键字*10 )表示长度为10字节的定长字符串。

Variant可变(Variant)类型数据能够根据赋值对象的类型变化和转换角色。

不建议使用Variant型,容易产生混乱。

自定义数据类型类似C语言的结构体(PLC中的UDT),可以自定义数据模板使用案例如下1'定义用户数据结构2Public Type myType3 member01 As Integer4 member02 As String5 member03 As Single6 member04 As Boolean7End Type8910Sub ok()1112Dim x As myType'声明用户自定义类型变量 x1314'使用该结构体的成员此处的赋值可以使用with语句处理15x.member01 = 123416x.member02 = 'hello world'17x.member03 = 3.14159318x.member04 = True1920'输出成员中的值21MsgBox (x.member01 & x.member02 & x.member03 & x. member04)2223End Sub输出结果如下:枚举数据类型声明枚举时从代码的开头处声明前面加上Public关键字枚举成员默认从0开始向后排序,用户可以指定枚举成员的初始值1Public Enum color2 red '可以给第一个赋一个初始值后面成员会自动递增3 orange4 yello5 green6 blue7 indigo8 purple9End Enum1011Sub AAA()12Dim x As Integer, y As Integer13x = color.green14y = color.purple1516MsgBox (x & y)'输出 3 617End Sub变量声明符号常量的使用下例中用Pi来替代3.141593的值,系统会根据表达式的值决定Pi 的数据类型。

“VBA”学习笔记

“VBA”学习笔记

“VBA”学习笔记1、常用单句常用调试工具Debug.Print;MsgBox;立即窗口,本地窗口,监视窗口常用开头与结尾Dim tim As Date: tim = Timer '记录当前时间(0到开始到现在的时间,单位为秒)Application.ScreenUpdating = False '关闭屏幕更新Application.DisplayAlerts = False '关闭提示Call 调用程序MsgBox Format(Timer - tim, '程序执行时间为:0.00秒'), 64, '时间统计' '报告代码的执行时长Application.ScreenUpdating = True '恢复屏幕更新Application.DisplayAlerts = True '恢复提示清除内容和添加边框.ClearContents '删除当前区域值.Borders.LineStyle = 0 '删除当前区域边框.Borders.LineStyle = 1 '当前区域添加边框Error语句On Error Resume Next '当程序出错时继续执行下一句Err.Clear'清除错误值常用变量类型及简码Dim Ows As Worksheet, Orng As Range ,Dic1 As Object;Private ;Publicinteger % 短整型-32,768 到 32,767long &长整型-2,147,483,648 ---- 2,147,483,648贰拾亿single !单精度浮点型string $ 字符型字典常用Set Dic1 = CreateObject('scripting.dictionary') '创建字典对象,并赋值给Dic1Dic1.Item(Arr (i, 2)) = Dic1.Item(Arr (i, 2)) + Arr (i, 1) '汇总求和字典对象的方法有6个:Add方法、Keys方法、Items方法、Exists方法、Remove方法、RemoveAll方法。

全名一起VBA基础篇10-16

全名一起VBA基础篇10-16
15第十五回子过程分工明确,模块化益处良多.flv
16第十六回函数可将结果反馈,公式也能自己开发.flv
16第十六回函数可将结果反馈,公式也能自己开发.flv
16第十六回函ห้องสมุดไป่ตู้可将结果反馈,公式也能自己开发.flv
10第十回While执守抱柱信,不见楼兰终不停.flv
11第十一回单变量难解二维表,双循环突破小周天.flv
12第十二回类与对象描绘万物,属性方法刻画细节.flv
13第十三回面向对象初显威力,Worksheets玩转表单.flv
14第十四回双重循环可解多表汇总,按名引用莫学楚人刻舟.flv
14第十四回双重循环可解多表汇总,按名引用莫学楚人刻舟.flv

VBA编程中的常用代码

VBA编程中的常用代码

VBA编程中的常用代码VBA(Visual Basic for Applications)是一种编程语言,用于在Microsoft Office应用程序中编写自定义宏和功能。

以下是一些在VBA 编程中常常用到的代码片段和技巧。

1. Excel VBA:打开和关闭工作簿这段代码演示了如何在Excel VBA中打开和关闭一个工作簿。

```vbaSub OpenAndCloseWorkbookDim wb As WorkbookSet wb = Workbooks.Open("C:\Path\To\Your\File.xlsx")'在这里执行你的代码wb.Close SaveChanges:=FalseEnd Sub```2. Excel VBA:遍历工作表下面的代码展示了如何遍历一个Excel工作簿中的所有工作表。

```vbaSub LoopThroughWorksheetsDim ws As WorksheetFor Each ws In ThisWorkbook.Worksheets'在这里执行你的代码Next wsEnd Sub```3. Excel VBA:在工作表中查找特定值以下代码展示了如何在一个工作表中查找特定值并返回它的位置。

```vbaFunction FindValue(ByRef rng As Range, ByVal searchValue As String) As RangeDim cell As RangeSet FindValue = NothingFor Each cell In rngIf cell.Value = searchValue ThenSet FindValue = cellExit FunctionEnd IfNext cellEnd Function```4. Word VBA:插入文本以下代码演示了如何在Word文档中插入文本。

VBA学习笔记[精品文档]

VBA学习笔记[精品文档]

EXCEL之VBA 学习笔记姓名:刘磊时间:2015年9目录第一章VBA基础知识 (3)第二章工作簿以及工作表的操作 (9)第三章:单元格区域操作 (14)第四章:事件程序: (36)第五章:VBA数组 (43)第一章VBA基础知识1:代码帮助:F12:代码换行:下划线+空格+回车3:.常用代码操作excel中的对象(1)、工作簿(Workbooks)Workbooks(N)第N个工作簿Workbooks ("工作簿名")ActiveWorkbook 活动工作簿ThisWorkBook 代码所在工作簿(2)、工作表(Worksheets)Sheets(N) 第N个工作表Sheets("工作表名")SheetN 第N个工作表ActiveSheet 活动工作表worksheets 与Sheets的区别(3)、单元格(cells)Range ("单元格地址")Cells(行号,列号)[A1]单元格简写Activecell 活动单元格Selection 当前被选取的区域4:常量与变量(1.)常量:常量是定义了之后就不做变化了。

常量定义格式:Const 常量名= 常量表达式(2).变量:在定义之后还能再次赋值变量定义格式:Dim 变量As 变量类型5:数据类型(1.)VBA中的常见数据类型:类型注释简写占用内存Integer 整型% 2ByteSingle 单精度! 4ByteDouble 双精度# 8ByteLong 长整型& 4ByteString 字符型$ 定长或变长( 变长字符串最多可包含大约20 亿( 2^31)个字符。

定长字符串可包含1 到大约64K ( 2^16 ) 个字符。

)Currency 货币型@ 8Byte6:if条件语句1.单行形式1(If...Then)If 条件判断Then 条件成立结果注意在单行形式中,按照If...Then 判断的结果也可以执行多条语句。

VBA学习笔记

VBA学习笔记

EXCEL之VBA 学习笔记姓名:刘磊时间:2015年9目录第一章VBA基础知识 (3)第二章工作簿以及工作表的操作 (9)第三章:单元格区域操作 (14)第四章:事件程序: (36)第五章:VBA数组 (43)第一章VBA基础知识1:代码帮助:F12:代码换行:下划线+空格+回车3:.常用代码操作excel中的对象(1)、工作簿(Workbooks)Workbooks(N)第N个工作簿Workbooks ("工作簿名")ActiveWorkbook 活动工作簿ThisWorkBook 代码所在工作簿(2)、工作表(Worksheets)Sheets(N) 第N个工作表Sheets("工作表名")SheetN 第N个工作表ActiveSheet 活动工作表worksheets 与Sheets的区别(3)、单元格(cells)Range ("单元格地址")Cells(行号,列号)[A1]单元格简写Activecell 活动单元格Selection 当前被选取的区域4:常量与变量(1.)常量:常量是定义了之后就不做变化了。

常量定义格式:Const 常量名= 常量表达式(2).变量:在定义之后还能再次赋值变量定义格式:Dim 变量As 变量类型5:数据类型(1.)VBA中的常见数据类型:类型注释简写占用内存Integer 整型% 2ByteSingle 单精度! 4ByteDouble 双精度# 8ByteLong 长整型& 4ByteString 字符型$ 定长或变长( 变长字符串最多可包含大约20 亿( 2^31)个字符。

定长字符串可包含1 到大约64K ( 2^16 ) 个字符。

)Currency 货币型@ 8Byte6:if条件语句1.单行形式1(If...Then)If 条件判断Then 条件成立结果注意在单行形式中,按照If...Then 判断的结果也可以执行多条语句。

VBA常用技巧代码解析

VBA常用技巧代码解析

VBA常用技巧代码解析/thread-395683-1-1.html大家在学习VBA的过程中,相信都有收集代码的习惯,我也是,硬盘中藏有许多VBA实例、代码,在去年《VBA精粹》的写作过程中更是在网络上收集了大量的VBA资料。

这些散布在各处的代码、实例对学习的帮助很大,但是查找起来很不方便,有时明明知道有某个例子,就是找不到,因此萌生了将这部分VBA资料进行整理的想法。

在写作《VBA精粹》一书时发现使用Word的[文档结构图]和[目录]的功能在查找资料时很方便,便使用《VBA精粹》的Word模板对资料进行了初步整理,计划用半年时间完成全部内容,目前已完成目录和第一部分内容,弊帚不敢自珍,将整理内容同步发在论坛上,希望对大家的学习有所帮助,也请大家指出其不足、错误之处。

在完成全部内容后我会将Word文档上传。

<Word文档及附件请到9楼下载,仅供EH会员学习交流之用,请勿传播,谢绝转载>2009-2-10 10:59 上传下载附件(99.08 KB)声明上传的附件在XP+Excel2003环境中进行过测试,其他版本未经测试,不能保证代码运行正确。

部分代码出自论坛,有些已经找不到链接了,在此一并感谢原作者,在下面的内容中就不一一言明出处了。

[本帖最后由yuanzhuping 于2010-6-12 16:00 编辑]第2部分 Worksheet(工作表)对象技巧21 引用工作表的方式21-1 使用工作表的名称 --103楼21-2 使用工作表的索引号 --103楼21-3 使用工作表的代码名称 --103楼21-4 使用ActiveSheet属性引用活动工作表 --103楼技巧22 选择工作表的方法 --110楼技巧23 遍历工作表的方法23-1 使用For...Next 语句 --113楼23-2 使用For Each...Next 语句 --125楼技巧24 在工作表中上下翻页 --126楼技巧25 工作表的添加与删除 --144楼技巧26 禁止删除指定工作表 --146楼技巧27 自动建立工作表目录 --147楼技巧28 工作表的深度隐藏 --153楼技巧29 防止更改工作表的名称 --154楼技巧30 工作表中一次插入多行 --156楼技巧31 删除工作表中的空行 --157楼技巧32 删除工作表的重复行 --161楼技巧33 定位删除特定内容所在的行 --162楼技巧34 判断是否选中整行 --163楼技巧35 限制工作表的滚动区域 --167楼技巧36 复制自动筛选后的数据区域 --170楼技巧37 使用高级筛选获得不重复记录 --171楼技巧38 工作表的保护与解除保护 --174楼技巧39 奇偶页打印 --198楼第2部分Worksheet(工作表)对象的Word文档和附件 --199楼第4部分 Shape(图形)、Chart(图表)对象技巧53 在工作表中添加图形 --291楼技巧54 导出工作表中的图片 --296楼技巧55 在工作表中添加艺术字 --302楼技巧56 遍历工作表中的图形 --306楼技巧57 移动、旋转图片 --311楼技巧58 工作表中自动插入图片 --313楼技巧59 固定工作表中图形的位置 --317楼技巧60 使用VBA自动生成图表 --339楼技巧61 使用独立窗口显示图表 --345楼技巧62 导出工作表中的图表 --350楼技巧63 多图表制作 --364楼第4部分 Shape(图形)、Chart(图表)对象附件及1-4部分文档 --367楼第5部分 Application对象技巧64 取得Microsoft Excel版本信息 --368楼技巧65 取得当前用户名称 --369楼技巧66 Excel中的“定时器” --370楼技巧67 设置活动打印机的名称 --371楼技巧68 屏蔽、改变组合键的功能 --378楼技巧69 设置Excel窗口标题栏 --386楼技巧70 自定义Excel状态栏 --387楼技巧71 灵活退出Excel --393楼技巧72 隐藏Excel主窗口72-1 设置Application对象的Visible属性 --395楼72-2 将窗口移出屏幕 --395楼72-3 设置工作簿作为加载宏运行 --395楼第5部分 Application对象附件及1-5部分文档 --396楼第6部分使用对话框技巧73 使用Msgbox函数73-1 显示简单的提示信息 --409楼73-2 定制个性化的消息框 --409楼73-3 获得消息框的返回值 --409楼73-4 在消息框中排版 --409楼73-5 对齐消息框中显示的信息 --409楼技巧74 自动关闭的消息框74-1 使用WshShell.Popup方法显示消息框 --411楼74-2 使用API函数显示消息框 --411楼技巧75 使用InputBox函数75-1 简单的数据输入 --413楼75-2 使用对话框输入密码 --413楼技巧76 使用InputBox方法76-1 输入指定类型的数据 --421楼76-2 获得单元格区域地址 --421楼技巧77 使用对话框77-1 调用内置的对话框 --440楼77-2 获取选定文件的文件名 --440楼77-3 使用“另存为”对话框 --440楼技巧78 调用操作系统“关于”对话框 --444楼第6部分使用对话框附件及1-6部分Word文档 --449楼第7部分菜单和工具栏技巧79 在菜单中添加菜单项 --467楼技巧80 在菜单栏指定位置添加菜单 --468楼技巧81 屏蔽和删除工作表菜单 --476楼技巧82 改变系统菜单的操作 --477楼技巧83 定制自己的系统菜单 --478楼技巧84 改变菜单按钮图标 --489楼技巧85 右键快捷菜单增加菜单项 --497楼技巧86 自定义右键快捷菜单 --504楼技巧87 使用右键菜单制作数据有效性 --505楼技巧88 禁用工作表右键菜单 --506楼技巧89 创建自定义工具栏 --518楼技巧90 自定义工具栏按钮图标 --519楼技巧91 自定义工作簿图标 --520楼技巧92 移除工作表的最小最大化和关闭按钮 --530楼技巧93 在工具栏上添加下拉列表框 --536楼技巧94 屏蔽工作表的复制功能 --537楼技巧95 禁用工具栏的自定义 --548楼技巧96 屏蔽所有的命令栏 --559楼技巧97 恢复Excel的命令栏 --560楼第7部分菜单和工具栏附件及1-7部分Word文档 --562楼第8部分控件与用户窗体技巧98 限制文本框的输入 --568楼技巧99 文本框添加右键快捷菜单 --573楼技巧100 文本框回车自动输入 --581楼技巧101 自动选择文本框内容 --582楼技巧102 设置文本框数据格式 --583楼技巧103 限制文本框的输入长度 --584楼技巧104 将光标返回文本框中 --619楼技巧105 文本框的自动换行 --620楼技巧106 多个文本框数据相加 --629楼技巧107 控件跟随活动单元格 --630楼技巧108 高亮显示按钮 --634楼技巧109 组合框和列表框添加列表项的方法109-1 使用RowSource属性添加列表项 --638楼109-2 使用List属性添加列表项 --639楼109-3 使用AddItem方法添加列表项 --640楼技巧110 去除列表框数据源的重复值和空格 --642楼技巧111 移动列表框条目 --642楼技巧112 允许多项选择的列表框 --643楼技巧113 多列组合框和列表框的设置113-1 多列组合框和列表框添加列表项 --646楼113-2 多列列表框写入工作表 --647楼技巧114 输入时逐步提示信息 --679楼技巧115 二级组合框 --694楼技巧116 使用DTP控件输入日期 --698楼技巧117 使用RefEdit控件选择区域 --707楼技巧118 如何注册控件 --723楼技巧119 遍历控件的方法119-1 使用名称中的变量遍历控件 --730楼119-2 使用对象类型遍历控件 --731楼119-3 使用程序标识符遍历控件 --732楼119-4 使用名称中的变量遍历图形 --733楼119-5 使用FormControlType属性遍历图形 --734楼技巧120 使微调框最小变动量小于1 --736楼技巧121 不打印工作表中的控件121-1 设置控件格式 --737楼121-2 设置控件的printobjcet属性 --737楼技巧122 在框架中使用滚动条 --750楼技巧123 使用多页控件 --757楼技巧124 标签文字垂直居中对齐 --774楼技巧125 使用TabStrip控件 --791楼技巧126 显示GIF动画图片 --803楼技巧127 播放Flash文件 --804楼技巧128 在工作表中添加窗体控件128-1 使用AddFormControl方法 --844楼128-2 使用Add方法 --844楼技巧129 在工作表中添加ActiveX控件129-1 使用Add方法 --854楼129-2 使用AddOLEObject方法 --854楼技巧130 使用spreadsheet控件 --865楼技巧131 使用Listview控件131-1 使用Listview控件显示数据列表 --876楼131-2 在Listview控件中使用复选框 --887楼131-3 调整Listview控件的行距 --892楼131-4 在Listview控件中排序 --901楼131-5 Listview控件的图标设置 --908楼技巧132 调用非模式窗体 --925楼技巧133 进度条的制作133-1 使用进度条控件 --926楼133-2 使用标签控件 --927楼技巧134 使用TreeView控件显示层次 --931楼技巧135 用户窗体添加图标 --937楼技巧136 用户窗体添加最大最小化按纽 --938楼技巧137 禁用窗体标题栏的关闭按钮 --939楼技巧138 屏蔽窗体标题栏的关闭按钮 --947楼技巧139 无标题栏和边框的窗体 --948楼技巧140 制作年月选择窗体 --950楼技巧141 自定义窗体中的鼠标指针类型 --951楼技巧142 调整窗体的显示位置 --959楼技巧143 由鼠标确定窗体显示位 --960楼技巧144 用户窗体的打印 --962楼技巧145 使用自定义颜色设置窗体颜色 --963楼技巧146 在窗体中显示图表146-1 使用Export方法 --974楼146-2 使用API函数 --974楼技巧147 窗体运行时调整控件大小 --977楼技巧148 在用户窗体上添加菜单 --987楼技巧149 在用户窗体上添加工具栏 --994楼技巧150 使用代码添加窗体及控件 --1009楼1_8部分的Word文档和附件 --1014楼技巧151 用户窗体的全屏显示151-1 设置用户窗体为应用程序的大小 --1095楼 151-2 根据屏幕分辨率进行设置 --1095楼技巧152 在用户窗体上添加状态栏 --1112楼第9部分函数的使用技巧153 调用工作表函数求和 --1117楼技巧154 查找最大、最小值 --1122楼技巧155 不重复值的录入 --1131楼技巧156 获得当月的最后一天 --1135楼技巧157 四舍五入运算157-1 极小值修正法 --1144楼157-2 调用工作表函数法 --1144楼技巧158 使用字符串函数 --1148楼技巧159 使用日期函数 --1153楼技巧160 判断是否为数值 --1194楼技巧161 格式化数值、日期和时间 --1200楼技巧162 计算个人所得税 --1205楼技巧163 人民币大写函数 --1215楼技巧164 列号转换为列标 --1217楼技巧165 判断工作表是否为空表 --1238楼技巧166 查找指定工作表 --1240楼技巧167 查找指定工作簿是否打开 --1242楼技巧168 取得应用程序的安装路径 --1253楼技巧169 数组的使用169-1 代码运行时创建数组 --1271楼169-2 文本转换为数组 --1271楼169-3 使用动态数组去除重复值 --1271楼1-9部分Word文档及附件 --1272楼第10部分文件操作技巧170 导入文本文件170-1 使用查询表导入 --1290楼170-2 使用Open 语句导入 --1290楼170-3 使用OpenText方法 --1290楼技巧171 将数据写入文本文件171-1 使用Print # 语句 --1292楼171-2 另存为文本文件 --1292楼技巧172 文件修改的日期和时间 --1309楼技巧173 查找文件或文件夹 --1321楼技巧174 获得当前文件夹的名称 --1326楼技巧175 创建和删除文件夹 --1339楼技巧176 重命名文件或文件夹 --1340楼技巧177 复制指定的文件 --1353楼技巧178 删除指定的文件 --1357楼技巧179 搜索特定的文件 --1359楼技巧180 使用WSH处理文件180-1 获取文件信息 --1373楼180-2 查找文件 --1374楼180-3 移动文件 --1375楼180-4 复制文件 --1376楼180-5 删除文件 --1377楼180-6 创建文件夹 --1378楼180-7 复制文件夹 --1379楼180-8 移动文件夹 --1383楼180-9 删除文件夹 --1384楼180-10 导入文本文件 --1388楼180-11 创建文本文件 --1396楼1-10部分Word文档及附件 --1399楼第11部分其他应用技巧181 取得电脑名称 --1423楼技巧182 取得逻辑盘序列号 --1425楼技巧183 使用API取得硬盘信息 --1426楼技巧184 使用数字签名 --1427楼技巧185 暂停代码的运行 --1437楼技巧186 定时关机 --1444楼技巧187 打开指定的网页 --1445楼技巧188 VBE的操作188-1 添加模块和过程 --1463楼188-2 建立事件过程 --1464楼188-3 模块的导入与导出 --1479楼188-4 删除宏代码 --1499楼技巧189 保护VBA代码189-1 设置工程密码 --1510楼189-2 设置“工程不可查看” --1510楼技巧190 优化代码190-1 关闭屏幕刷新 --1515楼190-2 使用工作表函数 --1516楼190-3 使用更快的单元格操作方法 --1518楼 190-4 使用With语句引用对象 --1522楼190-5 少用激活或选择语句 --1523楼技巧191 取得文件的基本名称 --1526楼技巧192 防止用户中断代码运行 --1542楼技巧193 加班费计算表 --1582楼技巧194 制作发放条 --1595楼技巧195 费用统计表 --1598楼技巧196 职工花名册 --1588楼技巧197 收据系统 --1642楼技巧198 职工考勤系统 --1967楼2009-9-7 更新文档,请下载完全部压缩文件后一起解压缩。

vba常用代码讲解学习

vba常用代码讲解学习

VBA常用代码excel 常用宏宏代码大全本示例为设置密码窗口 (1)If Application.InputBox("请输入密码:") = 1234 Then[A1] = 1 '密码正确时执行Else: MsgBox "密码错误,即将退出!" '此行与第2行共同设置密码End If本示例为设置密码窗口 (1)X = MsgBox("是否真的要结帐?", vbYesNo)If X = vbYes ThenClose本示例为设置工作表密码ActiveSheet.Protect Password:=641112 ' 保护工作表并设置密码ActiveSheet.Unprotect Password:=641112 '撤消工作表保护并取消密码'本示例关闭除正在运行本示例的工作簿以外的其他所有工作簿,并保存其更改内容。

For Each w In WorkbooksIf <> Thenw.Close SaveChanges:=TrueEnd IfNext w'每次打开工作簿时,本示例都最大化 Microsoft Excel 窗口。

Application.WindowState = xlMaximized'本示例显示活动工作表的名称。

MsgBox "The name of the active sheet is " &'本示例保存当前活动工作簿的副本。

ActiveWorkbook.SaveCopyAs "C:\TEMP\XXXX.XLS"'下述过程激活工作簿中的第四张工作表。

Sheets(4).Activate'下述过程激活工作簿中的第1张工作表。

Worksheets(1).Activate'本示例通过将 Saved 属性设为 True 来关闭包含本段代码的工作簿,并放弃对该工作簿的任何更改。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VBA学习第十课笔记和代码:一、知识点:1、单元格区域的复制方法Sub 单元格对象的复制方法()'单元格对象的复制方法,就是单元格区域.copy --- 目标区域的起始位置Dim 主区域As Range, 被复制区域As RangeSet 主区域= Range("a1").CurrentRegionSet 被复制区域= Range("a1").Resize(1, 主区域.Columns.Count)With Sheet2被复制区域.Copy .[a1]End With'被复制区域.Copy Sheet2.[a1]End Sub2、'单元格区域的交集,两块(或者更多)单元格区域之间共有的部分'Intersect (区域1,区域2,...)'返回一个单元格区域对象,是上面多块区域共有的部分'如果区域2 是区域1的子集的话,就返回子集自身'如果两个区域之间没有共有部分的话,则返回一个nothingSub 单元格对象求交集()Dim 区域1 As Range, 区域2 As Range, 交集As RangeSheet3.ActivateSet 区域1 = Range("a1").CurrentRegionSet 区域2 = Range("e13:g16")'Set 区域2 = [i2].CurrentRegionSet 交集= Intersect(区域1, 区域2)If Not 交集Is Nothing Then _交集.Interior.Color = vbRedEnd Sub3、'求单元格的并集,万能胶水效应'Union (区域1,区域2, ...)'With 语句后面跟一个对象,工作表对象,工作簿对象'For Each in 循环Sub Union与With()Sheet3.ActivateWith Union([a1].CurrentRegion, [i3].CurrentRegion).Interior.Color = xlNone.Font.Bold = True.Font.Size = 10.Font.ColorIndex = 4End WithEnd Sub二、作业:Sub 查找王心刚()Dim rng As Range, rng1 As Range, r As Range, i As LongSheet1.ActivateSet rng = Range("a1").CurrentRegionSet rng1 = Intersect(Range("a1").CurrentRegion, Columns("d"))edRange.ClearIntersect(Range("a1").EntireRow, rng).Copy Sheet2.[a1]For Each r In rng1i = Sheet2.Range("a55366").End(xlUp).Row + 1If r.Value = "王心刚" Then Intersect(r.EntireRow, rng).Copy Sheet2.Cells(i, 1) NextEnd Sub第二种方法:Sub 使用交集办法查找王心刚()Dim 筛选区域As Range, i As Long, 首地址As String, 目标地址As RangeSheet2.Range("a1").CurrentRegion.DeleteRange("a1").Resize(1, Range("a1").CurrentRegion.Columns.Count).Copy Sheet2.[a1] '复制第一行Set 筛选区域= Intersect(Range("a1").CurrentRegion, Range("D:D")).Find("王心刚") '查找两个地址交集中的首个王心刚If Not 筛选区域Is Nothing Then'如果筛选区域不是空(找到王心刚)向下运行首地址= 筛选区域.Address'获取首个王心刚的单元格地址Set 目标地址= Intersect(Range("a1").CurrentRegion, 筛选区域.EntireRow) 目标地址.Copy Sheet2.Cells(2, 1)'复制首个王心刚的行DoSet 筛选区域= Intersect(Range("a1").CurrentRegion, Range("D:D")).FindNext(筛选区域) '在两个地址交集中查下一个王心则If 筛选区域.Address <> 首地址Theni = Sheet2.Range("a1").End(xlDown).Row + 1'动态获取行Set 目标地址= Intersect(Range("a1").CurrentRegion, 筛选区域.EntireRow)目标地址.Copy Sheet2.Cells(i, 1)ElseExit DoEnd IfLoopEnd IfEnd Sub2、Sub 天使水果统计()Dim rng As Range, 首地址As StringSet rng = edRange.Find("南部")首地址= rng.Addressrng.Offset(-1, 0).Resize(5, 4).Copy Sheet6.[a3]Range("a3") = "合计"DoSet rng = edRange.FindNext(rng)If rng.Address <> 首地址Thenrng.Offset(0, 1).Resize(4, 3).CopySheet6.Range("a3").Offset(1, 1).PasteSpecial , Paste:=xlPasteAll, Operation:=xlAddElseExit DoEnd IfLoopEnd SubSub 天使之城水果统计()Dim rng As Range, i As Long, 首地址As String, 查找区域As Range, 目标区域As RangeRange("a3").CurrentRegion.Copy Sheets("统计表").Range("a3")Sheets("统计表").Range("a3") = "统计"Set 查找区域= Range("A:A").Find("南部")首地址= 查找区域.AddressDoSet 查找区域= Range("A:A").FindNext(查找区域)If 查找区域.Address <> 首地址Then查找区域.Offset(0, 1).Resize(4, 3).CopySheets("统计表").Range("b4"). _PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd, SkipBlanks:= _False, Transpose:=FalseElseExit DoEnd IfLoopEnd Sub3、Sub 合并组别()Dim i As Long, j As Long, rng As Range, 平均工资As Double, 等级As RangeSet rng = Intersect(Range("a2").CurrentRegion, Range("B:B"))Range("h15:i19").ClearContentsFor Each 等级In rngSelect Case 等级Case Is = "A等"Cells(15, 8) = 等级.Offset(0, 1).Value + Cells(15, 8)Cells(15, 9) = 等级.Offset(0, 1).Value * 等级.Offset(0, 2).Value + Cells(15, 9)Case Is = "B等"Cells(16, 8) = 等级.Offset(0, 1).Value + Cells(16, 8)Cells(16, 9) = 等级.Offset(0, 1).Value * 等级.Offset(0, 2).Value + Cells(16, 9) Case Is = "C等", "D等"Cells(17, 8) = 等级.Offset(0, 1).Value + Cells(17, 8)Cells(17, 9) = 等级.Offset(0, 1).Value * 等级.Offset(0, 2).Value + Cells(17, 9) Case Is = "E等"Cells(18, 8) = 等级.Offset(0, 1).Value + Cells(18, 8)Cells(18, 9) = 等级.Offset(0, 1).Value * 等级.Offset(0, 2).Value + Cells(18, 9) Case Is = "F等"Cells(19, 8) = 等级.Offset(0, 1).Value + Cells(19, 8)Cells(19, 9) = 等级.Offset(0, 1).Value * 等级.Offset(0, 2).Value + Cells(19, 9) End SelectNextFor i = 15 To 19Cells(i, "I") = Round(Cells(i, "I") / Cells(i, "h"), 2)NextEnd SubSub 工资统计()Dim i As Long, rng As Range, 工种As Range, rng1 As Range, 等级As RangeSet rng = Intersect(Range("a1").CurrentRegion, Columns("b"))Set rng1 = Range("g15:g20")For Each 工种In rngFor Each 等级In rng1If 工种.Value = 等级.Value Then工种.Offset(0, 1).Copy等级.Offset(0, 1).PasteSpecial , Paste:=xlPasteAll, Operation:=xlAdd等级.Offset(0, 2).Value = 等级.Offset(0, 2).Value + 工种.Offset(0, 1).Value * 工种.Offset(0, 2).ValueElseEnd IfNextNextEnd Sub三、附加学习:PasteSpecial 选择性粘贴Paste 粘贴special 重要的,特殊的参数「Operation」的值的列表如下(默认值是xlPasteSpecialOperationNone)常量粘贴内容xlPasteSpecialOperationNone 无操作xlPasteSpecialOperationAdd 加xlPasteSpecialOperationSubtract 減xlPasteSpecialOperationMultiply 乗xlPasteSpecialOperationDivide 除参数「Paste」的值的列表如下(一般默认的是xlPasteAll)常量粘贴内容xlPasteAll 所有xlPasteFormulas 计算式xlPasteValues 值xlPasteFormats 格式xlPasteComments 注释xlPasteValidation 入力规则xlPasteAllExceptBorders 边框以外xlPasteColumnWidths 列宽xlPasteFormulasAndNumberFormats 计算式和值xlPasteValuesAndNumberFormats 值和格式。

相关文档
最新文档