前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Excel之VBA简单宏编程

Excel之VBA简单宏编程

作者头像
全栈程序员站长
发布于 2022-07-01 10:13:46
发布于 2022-07-01 10:13:46
3.6K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

Excel之VBA简单宏编程

excel是一款很经典的数据分析的工具,里面包含了很多内置函数,但实际情况有时却复杂得多,而excel的宏编程提供了自定义函数的功能,正好有老师需要帮忙做一些数据分析,就学习了一下,下面是我的学习笔记。本人使用的是excel2013。有出入的地方可以参考。

文章目录

1、准备工作
  • 打开开发工具面板(excel的主选项卡默认是没有开发工具选项卡的)

文件->选项->自定义功能区->

这时候主选项卡就有开发工具项了

  • 进入vba编辑

点击visual basic进入

在VBAProject上右键->插入->模块 出现一个编辑文件如下图

然后就可以在这里写入vba代码。

2、VBA编程
2.1模块声明

  类似于一个程序,一个模块要有一个主程序入口即模块声明,如 Sub sname() ··· ··· End Sub

2.2变量声明及赋值

  声明格式为: Dim ‘变量名称’ As ‘变量类型’   如 Dim i As Integer Dim str As String   赋值格式为: i = 3 str = “hello world!”   直接等号赋值

数据类型

定义符号

备注

字符串

String

整型数字

Integer

-32768~32767

长整型数字

Long

-2147483648~2147483647

单精度浮点型数字

Single

精度为6

双精度浮点型数字

Double

精度为14

日期型

Date

布尔型

Boolean

变体型

Variant

万用的类型,尽量避免使用

对象型

Object

没有深究

枚举型

枚举类型数据定义格式: Public|Private Enum 变量名   成员1[=常数表达式1]   成员1[=常数表达式1]   ··· ··· End Enum 例如: Public Enum WorkDays   星期日   星期一   星期二   星期三   星期四   星期五   星期六 End Enum

2.3if-else结构
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
If ······ Then
  ······
ElseIf ······ Then
  ······
Else
  ······
End If
2.4循环结构
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Do While ······
  ······
Loop
For i = 0 To 100 Step 1
  ······
Next i

跳出for循环可以用 Exit For

2.5比较运算符

名称

运算符

等于

=

不等于

<>

小于

<

小于等于

<=

大于

>

大于等于

>=

字符串匹配

Like

2.6注释

  VBA里的单行注释以单引号'标识

3、常用功能
3.1获取表格数据
  • 获取第i行j列单元格数据 Sheets(‘表格名’).Cells(i,j).Value
  • 获取第i行数据 Sheets('表格名').Rows(i)
  • 获取第j列 Sheets('表格名').Columns(j)
  • 获取一块 Range("a1:b60")
3.2复制单元格且保留原单元格列宽
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Sheets(name_1).Cells(i, k).copy
Sheets(name_result).Cells(i,k).PasteSpecial xlPasteColumnWidths
3.3设置单元格、某一行或某一列颜色
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Sheets(name_1).Rows(i).Interior.ColorIndex = 3'
Sheets(name_1).Rows(i).Font.ColorIndex = 1
Sheets(name_1).Cells(i,j).Interior.ColorIndex = 3'
Sheets(name_1).Cells(i,j).Font.ColorIndex = 1
3.4获取表格有用列数和有用行数
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
irows1 = Sheets(name_1).UsedRange.Rows.Count
icolumns1 = Sheets(name_1).UsedRange.Columns.Count
4、调试运行

快捷键

功能

F8

逐语句运行

Shift+F8

逐过程运行

Ctrl+F8

运行到光标处

F9

光标处添加断点

调试->添加监视

添加监视

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/130843.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
VBA 在 Excel 中的常用操作
设置单元格 Value 里使用 Chr(10) 和 Chr(13),分别表示回车、换行。
mzlogin
2020/04/16
4K0
EXCEL VBA语句集300
        定制模块行为 (1) Option Explicit ‘强制对模块内所有变量进行声明 Option Private Module ‘标记模块为私有,仅对同一工程中其它模块有用,在宏对话框中不显示  Option Compare Text ‘字符串不区分大小写  Option Base 1 ‘指定数组的第一个下标为1 (2) On Error Resume Next ‘忽略错误继续执行VBA代码,避免出现错误消息 (3) On Error GoTo ErrorHandler ‘当错误发生时跳转到过程中的某个位置 (4) On Error GoTo 0 ‘恢复正常的错误提示 (5) Application.DisplayAlerts=False ‘在程序执行过程中使出现的警告框不显示 (6) Application.ScreenUpdating=False ‘关闭屏幕刷新 Application.ScreenUpdating=True ‘打开屏幕刷新 (7) Application.Enable.CancelKey=xlDisabled ‘禁用Ctrl+Break中止宏运行的功能  工作簿 (8) Workbooks.Add() ‘创建一个新的工作簿 (9) Workbooks(“book1.xls”).Activate ‘激活名为book1的工作簿 (10) ThisWorkbook.Save ‘保存工作簿 (11) ThisWorkbook.close ‘关闭当前工作簿 (12) ActiveWorkbook.Sheets.Count ‘获取活动工作薄中工作表数 (13) ActiveWorkbook.name ‘返回活动工作薄的名称 (14) ThisWorkbook.Name ‘返回当前工作簿名称 ThisWorkbook.FullName ‘返回当前工作簿路径和名称 (15) ActiveWindow.EnableResize=False ‘禁止调整活动工作簿的大小 (16) Application.Window.Arrange xlArrangeStyleTiled ‘将工作簿以平铺方式排列 (17) ActiveWorkbook.WindowState=xlMaximized ‘将当前工作簿最大化  工作表 (18) ActiveSheet.UsedRange.Rows.Count ‘当前工作表中已使用的行数 (19) Rows.Count ‘获取工作表的行数(注:考虑向前兼容性) (20) Sheets(Sheet1).Name= “Sum” ‘将Sheet1命名为Sum (21) ThisWorkbook.Sheets.Add Before:=Worksheets(1) ‘添加一个新工作表在第一工作表前 (22) ActiveSheet.Move After:=ActiveWorkbook. _ Sheets(ActiveWorkbook.Sheets.Count) ‘将当前工作表移至工作表的最后 (23) Worksheets(Array(“sheet1”,”sheet2”)).Select ‘同时选择工作表1和工作表2 (24) Sheets(“sheet1”).Delete或 Sheets(1).Delete ‘删除工作表1 (25) ActiveWorkbook.Sheets(i).Name ‘获取工作表i的名称 (26) ActiveWindow.DisplayGridlines=Not ActiveWindow.DisplayGridlines ‘切换工作表中的网格线显示,这种方法也可以用在其它方面进行相互切换,即相当于开关按钮 (27) ActiveWindow.DisplayHeadings=Not ActiveWindow.DisplayHeadings ‘切换工作表中的行列边框显示 (28) ActiveSheet.UsedRange.FormatConditions.Delete ‘删除当前工作表中所有的条件格式 (29) Cells.Hyperlinks.Delete ‘取消当前工作表所有超链接 (30) ActiveSheet.PageSetup.Orientation=xlLandscape 或ActiveSheet.PageSetup.Orientation=2 ‘将页面设置更改为横向 (31) ActiveSheet.PageSetup.RightFooter=ActiveWorkbook.FullName ‘在页面设置的表尾中输入文件路径 ActiveSheet.PageSetup.Le
Tony老师
2020/03/05
2.1K0
VBA程序:查找并列出指定工作表中所有合并单元格的地址
运行下面的VBA过程,将列出当前工作表中所有合并单元格的地址。程序会新建一个工作表并重命名,然后在其中输入所有合并单元格的地址。
fanjy
2024/03/11
2920
VBA程序:查找并列出指定工作表中所有合并单元格的地址
Excel中的VBA编程「建议收藏」
目的:有时我们需要对Excel文件中大量的数据进行整理,此时如果使用手动整理会非常繁琐而且容易出错。而如果采用VBA语言,在Excel中根据需求编写一段简单的代码就能自动完成大量数据的整理工作。
全栈程序员站长
2022/08/23
6.2K0
Excel中的VBA编程「建议收藏」
Excel VBA编程
在Excel中,数据只有文本,数值,日期值,逻辑值和错误值五种类型。但是在VBA中,数据类型跟Excel不完全相同。根据数据的特点,VBA将数据分为布尔型(boolean),字节型(byte),整数型(integer),单精度浮点型(single),双精度浮点型(double),货币型(currency),小数型(decimal),字符串型(string),日期型(date),对象型等等
全栈程序员站长
2022/08/11
46.3K0
Excel VBA编程
一小时搞定 简单VBA编程 Excel宏编程快速扫盲
Excel宏编程可以快速完成批量表格操作:复制粘贴、数据过滤等,宏代码基于VB语言实现,有基础的编程经验就能快速阅读。下面是我的学习笔记。
全栈程序员站长
2022/08/10
1.8K0
VBA实用小程序63: 查找并返回与指定属性匹配的所有单元格
本文介绍的VBA程序是一个自定义函数,整理自jkp-ads.com,很好地增强了内置的CallByName函数的适用性。
fanjy
2020/11/09
1.5K0
VBA实用小程序63: 查找并返回与指定属性匹配的所有单元格
ExcelVBA运用Excel的【条件格式】(五)
FormatConditions.Add`方法在VBA中用于向工作表上的某个范围添加新的条件格式规则。这个方法是`FormatConditions`集合的一个成员,而`FormatConditions`集合属于`Range`对象。这意味着你必须首先选定一个范围,然后才能调用`Add`方法来添加条件格式。
哆哆Excel
2024/07/25
3090
ExcelVBA运用Excel的【条件格式】(五)
Excel VBA之Range对象
Cells(1,Columns.Count).End(xlToLeft).Column
哆哆Excel
2022/10/25
1.6K0
Excel VBA编程教程(基础一)
说简单点,VBA 是运行在 Microsoft Office 软件之上,可以用来编写非软件自带的功能的编程语言。Office 软件提供丰富的功能接口,VBA 可以调用它们,实现自定义的需求。基本上,能用鼠标和键盘能做的事情,VBA 也能做。
全栈程序员站长
2022/08/11
13.4K0
Excel VBA编程教程(基础一)
代替VBA!用Python轻松实现Excel编程(文末赠书)
面向Excel数据处理自动化的脚本编程,目前主要有VBA和Python两种语言可供选择。
小F
2023/01/03
6K0
代替VBA!用Python轻松实现Excel编程(文末赠书)
问与答126:如何高亮显示指定日期?
Q:在列A中是一系列日期,我如何操作,使得含有当天日期的单元格显示为红色,距离当天10天内的日期单元格显示为黄色?
fanjy
2021/06/01
2.1K0
问与答126:如何高亮显示指定日期?
文科生也能学会的Excel VBA 宏编程入门(三)——合并文件
在日常工作中,我们经常会遇到需要汇总多个表格的数据,将它们合并到一个表格里的情况。虽然复制粘贴大法好,但如果让你汇总几十人填报的个人信息并做成汇总表格,估计你也膜不动了。因此,这一次我们就通过VBA程序完成这个任务,从此妈妈再也不担心我数数到头秃。
全栈程序员站长
2022/09/02
3.9K0
小游戏2048
用Excel VBA来实现的手机上玩的那种组合数字的小游戏。 Public Row As Integer, Col As Integer '偏移 Di
xyj
2020/07/28
7880
小游戏2048
VBA对象变量
大家好,前面介绍了vba中两个主要的对象,单元格range对象和工作表worksheet对象,以及它们的属性和方法。
无言之月
2019/10/13
2K0
Vba菜鸟教程[通俗易懂]
官方文档:https://docs.microsoft.com/zh-cn/office/vba/api/overview/language-reference 代码完成后:工具-vbaproject属性-保护-查看时锁定-密码
全栈程序员站长
2022/09/05
17.5K0
Vba菜鸟教程[通俗易懂]
一起学Excel专业开发26:使用类模块创建对象5
类模块具有引发事件的能力,这也是它的另一个强大的功能。我们可以定义自已的事件,并在代码中引发这个事件,其他类模块也可以捕获这些自定义的事件并作出相应的响应。
fanjy
2019/11/14
7140
AutoHotkey 通过 COM 操作 Excel 文档
最近真的是跟电子表格干上了。 还有原来金士顿的终身质保不是噱头,原来真的可以。最近干坏了一条1600内存,大概5年以前的。本来打算咸鱼淘一个,价格出奇的不合适,当地又没有总代,所以通过400客服给了一个河南总代的电话,寄过去代保就可以了。大概历时一个月左右顺丰包邮寄回。撒花赞一下
怪兽
2022/10/04
1.9K0
Excel VBA之Find
使用,因为我们的工作表中常常在最后会写一此“备注”,我们在取数据的时候,备注与后面的东西是没用的,所以我们要取到备注以上的东西,以"金额合计"或“合计”为最后一行号
哆哆Excel
2022/10/25
2.3K0
ChatGPT与Excel结合_编写VBA宏
⭐Excel VBA宏(Visual Basic for Applications)是一种用于在Microsoft Excel中自动化和扩展功能的编程语言。VBA允许用户编写自定义的脚本或宏,以便通过执行一系列指令来自动完成特定任务。
天天Lotay
2023/10/15
8090
ChatGPT与Excel结合_编写VBA宏
推荐阅读
相关推荐
VBA 在 Excel 中的常用操作
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档