VBA常用语法

【VBA编程】VBA基础语法(一) 一、VBA中的数据类型 VBA里的数据类型有:字节型(Byte)、整数型(Integer)、长整数型(Long)、单精度浮点型(Single)、双精度浮点型(Double)、货币型(Currency),小数型(Decimal)、字符串型(String)、日期型(Date),布尔型(Boolean)等。 二、VBA中的常量和变量 1、声明变量 一般声明变量: Dim 变量名 As 数据类型 注:也可以使用变量类型声明符来声明变量。如果不指定数据类型,则默认将变量声明为Varian... 阅读详情

最近接触了一下VBA编程,才知道Excel还能编程,而且还如此强大,真的是惊呆了,话不多说,先了解一下VBA常用的语法吧。

1、基础语法

//高级for循环
Function deleteArrayByIndex(list) As String
    Dim item
    For Each item In list
        MsgBox item
    Next item
End Function

//获取当前sheet的名称和位置
sheetIndex = ActiveSheet.index
sheetName = ActiveSheet.Name

//获取最后一行
Dim sheetIndex As Integer
lastRow = Sheets(sheetName).UsedRange.Rows.Count

//删除多行
Rows("7:12").Delete
Range("A12:Q12").Clear
Range("A12:Q12").ClearContents

//插入一行
Sheets(sheetName).Rows(10).Insert

//为某单元格赋值
Range("B" & 1).Select
Selection.formula = "D"

//contains,包含
If InStr(str, "zhangsan") <> 0 Then
Else
End If

//for循环 + Replace
For i = 0 To UBound(arr)
   arr(i) = Replace(Trim(arr(i)), ",", "")
   arr(i) = Replace(valueArr(i), ";", "")
Next i

//Split
list = "1,2,3,4"
arr = VBA.Split(list, ",")

//获取某单元格公式
Range("A12").formula

//return
exit function(函数)
exit sub(事件过程)

//截取字符串
Mid(a, 2, 3)  '提取第二个字符开始之后的3个字符

//获取字符串的首字符
Left(month, 1) 

//获取其它sheet单元格数据(第6行第21列)
Sheet1.Cells(6, 21).value

//获取单元格背景色
Range("A1").Interior.ColorIndex

//设置单元格背景颜色
For Each item In Range(Range("A1"), Range("H10"))
   If item.value = 0 Then
       item.Interior.ColorIndex = 10
   ElseIf item.value = 1 Then
       item.Interior.ColorIndex = 11
   End If
Next

//赋值
Dim a As range
Set a = Sheets(sheetName).range("A1:C6")
a.Borders.LineStyle = 1//表格线宽度
a.Font.ColorIndex = 1//颜色
a.Font.Name = "Arial"//字体
a.HorizontalAlignment = xlCenter//居中

//计算方法耗时
Dim t As Single
t = Timer
Timer - t

//do循环
Sub ClassNamer()
    Dim MyClasses As New Collection    ' 建立一个集合对象(Collection)。
    Dim Num    ' 计数用变量,用来对对象的个数计数。
    Dim Msg As String    ' 提示信息用变量。
    Dim TheName, MyObject, NameList    ' 对象信息用变体。
    Do
        Dim Inst As New Class1    ' 建立 Class1 的新实例。
        Num = Num + 1    ' 把计数变量 Num 加一,然后要求输入新对象个体的名称。
        Msg = "Please enter a name for this object." & Chr(13) _
         & "Press Cancel to see names in collection."
        TheName = InputBox(Msg, "Name the Collection Items")
        Inst.InstanceName = TheName    ' 将名称送入对象实例。
        ' 若用户输入了名称,将它加入集合。
        If Inst.InstanceName <> "" Then
            ' 将命名的对象加入集合。
            MyClasses.Add item := Inst, key := CStr(Num)
        End If
        ' 清除当前的引用,为对下一个对象做准备。
        Set Inst = Nothing
    Loop Until TheName = ""
    For Each MyObject In MyClasses    ' 建立名称列表。
        NameList = NameList & MyObject.InstanceName & Chr(13)
    Next MyObject
    ' 将名称列表在消息框中显示出来。
    MsgBox NameList, , "Instance Names In MyClasses Collection"
 
    For Num = 1 To MyClasses.Count    ' 从集合中删除名字。
        MyClasses.Remove 1    ' 因为每删除一个对象后,集合
                ' 会自动重排顺序,故每次迭代时只需删除第一个
    Next        ' 对象即可。
End Sub

//debug输出
Debug.Print

//字符串长度
Len(str)

//switch
Select Case myVal
	Case 1
	Case 2
	Case 3
	Case Else
End Select

//获取当月最后一天
day(DateSerial(year(Date), month(Date) + 1, 0))

//代码换行
 _

//判断是否是数字
IsNumeric

//退出循环
Exit For

2、 excel vba快速填充公式(也就是往下拉)

//excel vba快速填充公式(也就是往下拉)
Sheet1.range("A1:K1").AutoFill Destination:=range("A1:K10"), Type:=xlFillDefault

//**********解决乱码问题***********
//(注意:使用[ADODB.Stream],需要在[VBA代码界面 -> 工具 -> 引用]中添加[microsoft activex data object 2.5 library]以上版本)
Dim ts As ADODB.Stream        
Set ts = New ADODB.Stream        
ts.Type = adTypeText
ts.Charset = "UTF-8"

'改行code根据文件而定

ts.LineSeparator = adLF
ts.Open

'文件装载

ts.LoadFromFile (filePath)        
Do While Not (ts.EOS)
   '行读取:ReadText(adReadLine)

   '全文件读取:ReadText(adReadAll)   
   lineBuffer = ts.ReadText(adReadLine)
   …

Loop

3、 自定义MsgBox

//自定义MsgBox
//空 ->默认一个确认按钮
//1 ->一个确认,一个取消
//2 ->表示三个按钮(中止、再试行、忽略)
/*msgBoxRet返回值含义如下:
1     OK    
2     Cancel    
3     Abort    
4     Retry    
5     Ignore    
6     Yes    
7     No    
*/

msgBoxRet = (MsgBox("I am the most beautiful", 2))

4、文件更改名字

//文件更改名字
Sub renameFile()
    Dim f1 As String
	Dim f2 As String
	
    On Error Resume Next
    f1 = "C:\Users\data\a.html"
    f2 = "C:\Users\data\b.html"
    Name f1 As f2 
End Sub

5、form窗口程序批量更改文本框 

//form窗口程序批量更改文本框
Private Sub WideToNarrow()
    Dim item

    For Each item In UserForm1.Controls
        If TypeName(item) = "TextBox" Then
            item.Value = gf_WideToNarrow(item.Value)
        End If
    Next item
End Sub

6、全角改半角 

//全角改半角
Public Function gf_WideToNarrow(ByVal strSrc As String) As String

    Dim strResult As String
    strResult = StrConv(strSrc, vbNarrow)
    
    strResult = Replace(strResult, "乗", "-")
    
    gf_WideToNarrow = strResult

End Function

VBA函数批量将将字符由全角转为半角,或由半角转为全角

 

 

往期精彩内容:

Java知识体系总结(2021版)

超详细的springBoot学习笔记

Java多线程基础知识总结(绝对经典)

Java面试题总结(附答案)

Vue基础知识总结(绝对经典)

常见数据结构与算法整理总结

Excel:VBA常用语法(二) VBA常用语法变量与常量 变量与常量 变量类型 说明 声明方式 Dim 局部变量 Dim A as integer ‘定义A为整型,且为局部变量 Private 私有变量 Private A as integer public 公有变量 Public A as integer Global 全局变量 Global A as integer Static 静态变量 Static A as integer VBA允许使用为定义的变量,默认是变体变量; 在模块通用说明部分 阅读详情

相关推荐

java制作微信小程序教程,VBA常用语法

还有更多的Redis、MySQL、JVM、Kafka、微服务、Spring全家桶等学习笔记这里就不一一列举出来。

2301_76348171的博客 800

02. VBA从入门到精通——基础语法

定义静态数组静态数组:是指维度和大小固定不变的数字一维数组:Dim A(10) As Long 或 Dim A(0 To 10) As Long '表示从0到10是一个数二位数组Dim A(2,10) As Long 或 Dim A(0 To 2,0 To 9) As Long '表示从0到2和从0到10,他们交叉相乘为30,所以数组大小为30示例Sub test()Next iEnd Sub定义动态数组动态数组:是指在程序运行时其大小可以变化,使用动态数组可以节省内存,加快运行速度。

weixin_43812198的博客 5477

VBA常用语法,2019-2021历年阿里Java面试真题

//获取单元格背景色 Range(“A1”).Interior.ColorIndex //设置单元格背景颜色 For Each item In Range(Range(“A1”), Range(“H10”)) If item.value = 0 Then item.Interior.ColorIndex = 10 ElseIf item.value = 1 Then item.Interior.ColorIndex = 11 End If Next //赋值 Dim a As range S

m0_58269520的博客 431

Excel VBA编程教程(基础一)

VBA介绍 Visual Basic for Applications(VBA)是 VisualBasic 的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展 Windows 的应用程序功能,特别是Microsoft Office软件。 说简单点,VBA 是运行在 Microsoft Office 软件之上,可以用来编写非软件自带的功能的编程语言。Office 软件提供丰富的功能接口,VBA 可以调用它们,实现自定义的需求。基本上,能用鼠标和键盘能做的

O_MMMM_O的博客 6万+

Excel VBA(01)基础语法

宏和VBA 基本概念 vba 就是一种可以作用于 Excel 的编程语言,可以用来扩展 Excel 功能 宏就是用来实现一定功能的代码集合(sub),简单的重复操作我们可以直接录制宏,让工具为我们自动生成相应的代码,复杂逻辑的处理需要我们手动进行代码的编写 基本操作 ...

stanwuc的博客 3093

VBA学习笔记

VBA学习笔记

qq_1096217361的博客 1563

VBA常用语法(一)

VBA语句 一、VBA语句 1.宏程序语句 运行后可 以完成一个功能。 ​`//给单元格a1赋值 Sub test() //开始语句 Range("a1") = 10 //程序主体 End Sub //结束语句 2.函数程序语句 运行后可以返回一个值 Function shcount() shcount = Sheets.Count E...

stupid_Qiu的博客 1340

EXCEL VBA从入门到精通 第一章:VBA入门

在VBA中,需要使用关键字Dim来定义一个变量,后面跟上变量名和变量的数据类型。例如,下面的代码定义了一个整型变量x和一个字符串变量name在VBA中,使用关键字Const来定义常量,后面跟上常量名和常量的值。例如,下面的代码定义了一个整型常量MAX_NUM和一个字符串常量MESSAGE需要注意的是,常量一旦被定义,其值就不能被改变。

1万+

【VBA记录】记录使用VBA中,一些常用到的语法和函数

啊欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器,

Undertaker_的博客 345

VBA帮助(很详细的VBA语法介绍)

很详细的VBA语法介绍: 一、VBA入门知识 。。。 二、了解对象、属性、方法和事件 1、了解对象、属性、方法和事件 2、Application 对象 3、Workbook 对象 4、Workbooks 属性 5、Range 对象 6、Range 属性 7、Cells 属性 。。。 三、VBA语法 (一)Visual Basic 的命名规则 1、写 Visual Basic 语句 2、写声明语句 3、Dim 语句的语法 4、Activate 方法的语法 5、Set 语句 3 6、MsgBox 函数的语法 7、选项语句的语法 8、AddressOf 运算符 9、了解变体 10、写赋值语句 11、写可执行的语句 12、Public 语句 13、Private 语句 14、使用数组 15、使用常数 16、AppActivate 语句 17、Beep 语句 19、Date 语句 20、Error 语句 21、Exit 语句 22、GoSub...Return 语句 23、GoTo 语句 24、Input # 语句 25、Let 语句 26、Load 语句 27、Name 语句 28、On...GoSub、On...GoTo 语句 29、Open 语句 30、Rem 语句 31、Stop 语句 32、Time 语句 33、While...Wend 语句 (二)逻辑语句 1、If...Then...Else 语句 2、使用 Select Case 语句 3、使用 For...Next 语句 4、For Each...Next 语句 5、 Do...Loop 语句 6、 With 语句 (三)过程 1、写 Sub 过程 2、写 Function 过程 3、写 Property 过程 四、 ActiveX 控件 1、AfterUpdate 事件 2、Click 事件 3、Click 事件、命令按钮控件、Accelerator 和 Caption 属性示例 4、DblClick 事件 5、Error 事件 6、KeyDown 和 KeyUp 事件 7、KeyPress 事件 8、KeyPress 事件示例 9、MouseDown 和 MouseUp 事件 10、MouseMove 事件 11、列表框控件 12、SpinDown 和 SpinUp 事件 13、SpinDown、SpinUp 事件和 Delay 属性示例 14、组合框控件 15、命令按钮控件 。。。

别再到处找密钥了!手把手教你搞定Halcon 24.11/25.05的试用授权(附每月更新提醒)

本文详细介绍了Halcon 24.11/25.05试用授权的获取与配置方法,包括解密新版授权机制、快速配置指南、每月更新规律及多版本共存管理技巧。帮助开发者避免常见授权问题,提升工作效率,特别适合机器视觉领域的初学者和专业人士。

weixin_29238147的博客 1163

Java面试题及答案,VBA常用语法_vba面试

/(注意:使用[ADODB.Stream],需要在[VBA代码界面 -> 工具 -> 引用]中添加[microsoft activex data object 2.5 library]以上版本)a.HorizontalAlignment = xlCenter//居中。a.Borders.LineStyle = 1//表格线宽度。a.Font.ColorIndex = 1//颜色。a.Font.Name = “Arial”//字体。//contains,包含。//自定义MsgBox。

2501_90250883的博客 481

若依RuoYi文件上传漏洞实战:如何安全配置/profile/upload路径(附避坑指南)

本文深入解析若依RuoYi框架中/profile/upload路径的文件上传漏洞,提供详细的安全配置方案和实战指南。通过权限修正、输入验证强化和存储隔离等多层防御策略,有效防范未授权访问和恶意文件上传风险,保障系统安全。

pink的博客 779

【Office办公】【Excel】 宏中脚本编程 VBA编程常用语法

判断结构:当提供的表达式为真(True)时,判断结构的主体部分才会被执行,否则跳过。循环结构:循环部分代码,按照指定的循环次数,循环重复执行。以英文单引号 (')开头,后接需要解释说明的内容。顺序结构:从上到下、从左到右的顺序。Excel中宏 VBA编程常用语法。中间填写自己编写的代码。1.过程的开始与结束。

邑轻辰的学习笔记 1815

win2012 r2 + IIS8.5 伪静态设置脚本映射

win2012 r2 + IIS8.5 伪静态设置脚本映射,网站用的.net fromwork 2.0 ,应用程序池设置了32位支持

xueking87的专栏 3240

上位机图像处理和嵌入式模块部署(qmacvisual获取边界点)

【声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 在图像处理中,解决了分割的问题之后,下面就是属性信息的提取。在这其中,有一种属性是非常重要的 ,那就是外界轮廓的边界点获取。这个边界点,可以用来计算长度,也可以用来进行直线、圆的拟合,具体的用途取决于现场的实际使用场景。目前qmacvisual支持对边界点的提取,相关控件可以直接用来提取边界点。

嵌入式-老费,一个分享专业嵌入式知识的blog 883

Java面试题及答案,VBA常用语法

1、基础语法 //高级for循环 Function deleteArrayByIndex(list) As String Dim item For Each item In list MsgBox item Next item End Function //获取当前sheet的名称和位置 sheetIndex = ActiveSheet.index sheetName = ActiveSheet.Name //获取最后一行 Dim s

m0_56144365的博客 285

RK3568平台(网络篇)添加网络交换芯片RTL8306M

该交换芯片支持I2C、SPI、mdio通信,但是看ast1520的uboot代码采用的是mdio去通信phy芯片的,所以暂时也先采用mdio的方式,需要配置相应的引脚才可以配置成mdio通信模式,具体的配置硬件工程师解决。RTL8306M芯片上可能没有提供MDC/MDIO接口,可以通过GPIO(General Purpose Input/Output)来模拟,GPIO可实现串行输入输出,且一般CPU上会提供很多GPIO接口供用户自定义使用。

weixin_49303682的博客 3935

GitHub标星8k!VBA常用语法(1)

arr(i) = Replace(valueArr(i), ";", "") Next i //Split list = “1,2,3,4” arr = VBA.Split(list, “,”) //获取某单元格公式 Range(“A12”).formula //return exit function(函数) exit sub(事件过程) //截取字符串 Mid(a, 2, 3) '提取第二个字符开始之后的3个字符 //获取字符串的首字符 Left(month, 1) //获取其它sheet单元格数据

m0_60388292的博客 647

使用R语言获取泊松回归模型的事件密度比(Incidence Rate Ratio,IRR)的95%置信区间

在泊松回归模型中,我们通常关注的是自变量对事件发生率的影响,而事件密度比(Incidence Rate Ratio,IRR)可以帮助我们理解不同自变量对事件发生率的相对影响。在本文中,我们将使用R语言来获取泊松回归模型所有系数的事件密度比的95%置信区间。通过以上步骤,我们可以使用R语言获取泊松回归模型所有系数的事件密度比的95%置信区间。为了获取事件密度比的置信区间,我们将使用。使用R语言获取泊松回归模型的事件密度比(Incidence Rate Ratio,IRR)的95%置信区间。

BugCrusher的博客 1264

​ISP算法及架构分析介绍

ISP算法及架构分析介绍ISP即Image Signal Processor,是一种图像处理架构,不是我们用的下载器。ISP其实算是图像处理的一个特例,一般应用于前端设备(相对于SENSOR),从结果上看就是将RAW数据转换成压缩后的RGB(一般)数据,供后续CPU使用(识别、压缩等)。市面上很少有直接介绍ISP的书籍或者资料,今天我们主要是聊一聊ISP算法的架构,这样大...

OpenFPGA的博客 5405

VBA语言的异常处理

异常是指在程序运行过程中发生的意外事件,这些事件可能导致程序无法按预期执行。异常可以由多种原因引起,例如输入错误、文件未找到、网络问题等。异常处理是VBA编程中不可或缺的一部分,它可以帮助开发者提高代码的质量和用户体验。通过合理使用On Error语句,可以有效捕捉和处理各种错误,使得程序在遇到问题时不至于崩溃。希望本文能够帮助你更好地理解和应用VBA中的异常处理机制,让你的编程之路更加顺畅。在实际开发过程中,注意总结经验教训,不断改进异常处理策略,才能在复杂的项目中保持代码的可靠性与可维护性。

2501_91185241的博客 1353

PCL 模型滤波器【2025最新版】

根据给定的模型系数在点云中提取对应于模型的点云数据。博客长期更新,本文最新更新时间为:2025年6月17日。

点云侠的博客 4384

Excel VBA 典型实例学习资料

Excel VBA 典型实例学习资料 【下载地址】ExcelVBA典型实例学习资料 这个开源项目为Excel VBA学习者提供了一份实用的“Excel VBA 典型实例”学习资料,基于Excel 2010版本。资料包含多个精选实例,每个实例都配有详细代码和操作步骤,帮助用户深入理解VBA编程基础、掌握常用语法和技巧,并通...

gitblog_06728的博客 445

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

excel vba常用实例_分享13个Excel常用的数据库函数的用途/语法/参数/实例介绍

Excel是办公室自动化中非常重要的一款软件,Excel函数则是Excel中的内置函数。Excel函数共包含11类,分别是数据库函数、日期与时间函数、工程函数、财务函数、信息函数、逻辑函数、查询和引用函数、数学和三角函数、统计函数、文本函数以及用户自定义函数。下面上海非凡进修学院Office培训老师分享几个Excel常用的数据库函数的用途、语法、参数、实例介绍。1.DAVERAGE参数:返回数据库...

weixin_30767323的博客 2019

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

上一篇: Java基础知识总结(2021版)
下一篇: Ribbion之手写轮询算法
哪 吒
哪 吒 2022年度博客之星TOP 1 2022年度博客之星TOP 1 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 59万+粉丝 2953原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哪 吒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值