当前位置: 首页 > news >正文

从零开始学习VBA(一)

前置配置设置

首先配置开发设置(不同版本的配置方法会有差异,可根据自己使用的EXCEL版本到网络上找对应的方法,比如直接搜索Excel2010 开发工具)

以下为excel2016配置方法:

操作路径:文件-选项-自定义功能区-勾选开发工具-点击确定

-开启开发工具后要在信任中心中点击宏设置-勾选启用所有宏

 操作完毕后可以发现,已经配置完毕

IF语句

if 条件表达式 Then

条件表达式返回True时要执行的操作和计算

elseif   条件表达式  then

Else

条件表达式返回False时要执行的操作和计算

End If

FOR语句

语法:

For 循环变量 = 初值 To 终值 Step 步长值

循环体(要循环执行的操作或计算)

Next 循环变量名

For i = 1 To 5 Step 1

VBA会让循环变量i的值从1增加到5,每次增加1(每次增加多少,由Step后的数字确定)

For i = 5 To 1 Step -1

注意:当循环变量的终值大于初值时,步长值应设置为正整数,当循环变量的终值小于初值时,步长值该设置为负整数,否则,程序不会执行。

'range代表单元格 不是数值形式的都需要加入双引号
Sub 程序()
For i = 2 To 7
'从第一行到第六行每次步进为1 凡是单元格操作要看行数If Range("B" & i) = "女" ThenRange("C" & i) = "女士"ElseRange("c" & i) = "先生"End IfIf Range("D" & i) >= 90 ThenRange("E" & i) = "优秀"ElseIf Range("D" & i) >= 80 ThenRange("E" & i) = "良好"ElseIf Range("D" & i) >= 60 ThenRange("E" & i) = "及格"ElseRange("E" & i) = "不及格"End If
Next
'if语句必须要有首尾 &表示连接符
End Sub

生成1-100

    'range代表单元格 不是数值形式的都需要加入双引号Sub 程序()For i = 7 To 2 Step -1'凡是涉及删除操作的倒着判断If Range("B" & i) = "女" ThenRange("C" & i) = "女士"ElseRange("c" & i) = "先生"End IfIf Range("D" & i) >= 90 ThenRange("E" & i) = "优秀"ElseIf Range("D" & i) >= 80 ThenRange("E" & i) = "良好"ElseIf Range("D" & i) >= 60 ThenRange("E" & i) = "及格"ElseRange("E" & i) = "不及格"End IfIf Range("A" & i) = "" ThenRange("A" & i).SelectSelection.EntireRow.DeleteEnd IfNext'if语句必须要有首尾 &表示连接符End Sub

生成5个工作表

Sub 新建5张工作表()Dim i As Byte   '也可以定义为整型For i = 1 To 5 Step 1  '从1到5,步长为1时可以省略Worksheets.AddExit For'Exit For 跳出循环Next i     'i可以省略
End Sub

倒序删除

    'range代表单元格 不是数值形式的都需要加入双引号Sub 程序()For i = 7 To 2 Step -1'凡是涉及删除操作的倒着判断If Range("B" & i) = "女" ThenRange("C" & i) = "女士"ElseRange("c" & i) = "先生"End IfIf Range("D" & i) >= 90 ThenRange("E" & i) = "优秀"ElseIf Range("D" & i) >= 80 ThenRange("E" & i) = "良好"ElseIf Range("D" & i) >= 60 ThenRange("E" & i) = "及格"ElseRange("E" & i) = "不及格"End IfIf Range("A" & i) = "" ThenRange("A" & i).SelectSelection.EntireRow.DeleteEnd IfNext'if语句必须要有首尾 &表示连接符End Sub

http://www.lryc.cn/news/125521.html

相关文章:

  • Kotlin Executors线程池newSingleThreadExecutor单线程
  • ZooKeeper介绍
  • 首起针对国内金融企业的开源组件投毒攻击事件
  • 源于传承,擎领未来,新架构、新工艺下的“换心工程”——金融电子化访中电金信副总经理、研究院院长况文川
  • pytest数据驱动(最简单)
  • 分布式 - 服务器Nginx:一小时入门系列之代理缓冲与缓存
  • 什么是集成学习算法
  • springboot多模块打包方式
  • 【爬虫】Urllib让我们的 python 假装是浏览器
  • java基础面试
  • C++ 动态规划经典案例解析之最长公共子序列(LCS)_窥探递归和动态规划的一致性
  • 接口测试自动化:简化测试流程,提升效率
  • LoRA微调方法详解
  • redis-数据类型及样例
  • 公司电脑三维图纸加密、机械图挡加密软件
  • 安装使用IDEA,修改样式,配置服务,构建Maven项目(超级详细版)
  • Apache Dubbo 云原生可观测性的探索与实践
  • DaVinci Resolve Studio 18 for Mac 达芬奇调色
  • Excelize Go语言操作 Office Excel文档基础库
  • SpringBoot、Java 使用 Jsoup 解析 HTML 页面
  • C# 随心记
  • 华为OD机试-字符串分割
  • element-ui的el-dialog,简单的封装。
  • SpringBoot引入外部jar打包失败解决,SpringBoot手动引入jar打包war后报错问题
  • HTTP基础:学习HTTP协议的基本知识,了解请求和响应的过程
  • Spark基础-任务提交相关参数
  • ROS-PyQt小案例
  • 【算法】双指针——leetcode盛最多水的容器、剑指Offer57和为s的两个数字
  • idea 使用debug 启动项目的时候 出现 Method breakpoints may dramatically slow down debugging
  • Tomcat的一些配置问题(server.xml/catalina.sh)