VBA常用语法

最近接触了一下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基础知识总结(绝对经典)

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

  • 1
    点赞
  • 95
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
很详细的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、命令按钮控件 。。。
Excel VBA是一种用于微软Excel的编程语言,它可以帮助用户自动化Excel操作,提高工作效率。Excel VBA语法与应用手册是一本关于Excel VBA的指南,提供了详细的语法规则和实际应用例子。 这本手册首先介绍了一些基本的VBA语法规则,例如变量的声明和使用、条件判断和循环语句等。这些基础知识对于理解和编写VBA代码非常重要。 然后,手册详细介绍了Excel对象模型和常用VBA函数。通过深入了解Excel对象模型,用户可以控制Excel应用程序和工作簿,操作工作表和单元格。同时,手册还包含了常用VBA函数,如字符串处理函数、日期和时间函数等,可以帮助用户处理复杂的数据操作和计算。 此外,手册还介绍了VBA用户界面的设计和应用。通过使用VBA用户界面,用户可以创建自定义的菜单、工具栏和对话框,以及响应各种用户操作。这样,用户可以更方便地与Excel进行交互,并实现更多个性化的功能。 在实际应用方面,手册提供了大量的例子和案例分析,帮助用户理解VBA语法和应用的实际场景。这些例子涵盖了从简单的数据处理到复杂的报表生成、图表绘制等各种应用,用户可以通过借鉴和修改这些例子,快速实现自己的需求。 总的来说,Excel VBA语法与应用手册是一本非常实用的工具书,它提供了全面的VBA语法规则和应用实例,帮助用户掌握Excel VBA编程技能,提高工作效率。无论是Excel初学者还是有一定经验的用户,都能从这本手册中获得很大的帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

哪 吒

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

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

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

打赏作者

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

抵扣说明:

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

余额充值