当前位置:网站首页>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
边栏推荐
- LiveData postValue会“丢”数据
- 力扣每日一题-第32天-1232. 缀点成线
- 关于企业中台规划和 IT 架构微服务转型
- R语言使用epiDisplay包的dotplot函数通过点图的形式可视化不同区间数据点的频率、使用pch参数自定义指定点图数据点的形状
- Why do independent website sellers start to do social media marketing? The original customer conversion rate can be improved so much!
- Five degrees easy chain enterprise app is newly upgraded
- Basic concepts of binary tree
- 1、《创建您自己的NFT集合并发布一个Web3应用程序来展示它们》什么是NFT
- Go语言自学系列 | go语言数据类型
- How to find customers for investment attraction in industrial parks
猜你喜欢

Weekly recommended short videos: be alert to the confusion between "phenomena" and "problems"

LeetCode-21合并两个有序链表

Leetcode-141环形链表

隐私沙盒终于要来了

Unity learning fourth week

After studying 11 kinds of real-time chat software, I found that they all have these functions

Go Technology Daily (2022-02-14) - go language slice interview real questions 8 consecutive questions

1. "Create your own NFT collections and publish a Web3 application to show them." what is NFT

Solution: you can ping others, but others can't ping me

因子分析怎么计算权重?
随机推荐
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
[source code analysis] model parallel distributed training Megatron (5) -- pipestream flush
Using OpenSSL encryption to rebound shell traffic
Mysql database of easyclick
2、《创建您自己的NFT集合并发布一个Web3应用程序来展示它们》启动并运行您的本地环境
Solution: you can ping others, but others can't ping me
PTA year of birth
用WPF写一款开源方便、快捷的数据库文档查询、生成工具
Relational database management system of easyclick
Memo - about C # generating barcode
研究了11种实时聊天软件,我发现都具备这些功能…
力扣每日一题-第32天-589.N×树的前序遍历
NSI packaging script add file details
AI 训练速度突破摩尔定律;宋舒然团队获得RSS 2022最佳论文奖
12种数据量纲化处理方式
Navicat premium 15 permanent cracking and 2021 latest idea cracking (valid for personal testing)
因子分析怎么计算权重?
Write it down once Net travel management background CPU Explosion Analysis
12 data dimensioning processing methods
解决方案:可以ping别人,但是别人不能ping我