当前位置:网站首页>Excel之VBA简单宏编程
Excel之VBA简单宏编程
2022-07-01 18:36:00 【全栈程序员站长】
大家好,又见面了,我是你们的朋友全栈君。
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结构
If ······ Then
  ······
ElseIf ······ Then
  ······
Else
  ······
End If2.4循环结构
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复制单元格且保留原单元格列宽
Sheets(name_1).Cells(i, k).copy
Sheets(name_result).Cells(i,k).PasteSpecial xlPasteColumnWidths3.3设置单元格、某一行或某一列颜色
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 = 13.4获取表格有用列数和有用行数
irows1 = Sheets(name_1).UsedRange.Rows.Count
icolumns1 = Sheets(name_1).UsedRange.Columns.Count4、调试运行
快捷键 | 功能 |
|---|---|
F8 | 逐语句运行 |
Shift+F8 | 逐过程运行 |
Ctrl+F8 | 运行到光标处 |
F9 | 光标处添加断点 |
调试->添加监视 | 添加监视 |
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/130843.html原文链接:https://javaforall.cn
边栏推荐
- R language uses the transmute function of dplyr package to calculate the moving window mean value of the specified data column in dataframe data, and uses ggplot2 package to visualize the line graph b
- Lumiprobe non fluorescent alkyne EU (5-ethynyluridine)
- 磁盘的基本知识和基本命令
- 搭建一个通用监控告警平台,架构上需要有哪些设计
- 2020,最新手机号码手机验证正则表达式,持续更新
- Memo - about C # generating barcode for goods
- 实现一个Prometheus exporter
- AI 训练速度突破摩尔定律;宋舒然团队获得RSS 2022最佳论文奖
- Three. JS learning - basic operation of camera (learn from)
- 为什么独立站卖家都开始做社交媒体营销?原来客户转化率能提高这么多!
猜你喜欢

信度系数低怎么办?信度系数具体怎么算?

Localization through custom services in the shuttle application

Halcon image calibration enables subsequent image processing to become the same as the template image

Leetcode-160相交链表

Navicat premium 15 permanent cracking and 2021 latest idea cracking (valid for personal testing)

Technology implementation and Architecture Practice

Lumiprobe bifunctional crosslinker sulfo cyanine 5 bis NHS ester

Leetcode-128 longest continuous sequence

研究了11种实时聊天软件,我发现都具备这些功能…

PCL learning materials
随机推荐
如何在自有APP内实现小程序实现连麦直播
Blue Bridge Cup real problem: word analysis
Opencv map reading test -- error resolution
golang 错误处理
Operating system interview assault
《Go题库·16》读写锁底层是怎么实现的
Halcon图片标定,使得后续图片处理过后变成与模板图片一样
Static timing analysis (STA) in ic/fpga design
[source code analysis] NVIDIA hugectr, GPU version parameter server - (1)
[today in history] February 15: Pascal's father was born; YouTube was founded; Kotlin language comes out
实例讲解将Graph Explorer搬上JupyterLab
How to find the optimal learning rate
解决方案:可以ping别人,但是别人不能ping我
Lumiprobe 生物分子定量丨QuDye 蛋白定量试剂盒
[image denoising] matlab code for removing salt and pepper noise based on fast and effective multistage selective convolution filter
Must see, time series analysis
code
Technology implementation and Architecture Practice
Leetcode-141环形链表
力扣每日一题-第32天-1232. 缀点成线