前言
VBA(Visual Basic for Applications)是一种用于编写宏的编程语言,它广泛应用于Microsoft Office套件中的各种应用程序,如Excel、Word、Access和PowerPoint等。在这些应用程序中,VBA可用于自动化任务、定制功能、数据处理和报告生成等。
虽然VBA已经存在很长时间,并且被广泛应用于许多组织和行业,但是随着时间的推移,它的使用正在逐渐减少。原因可以归结为以下几点:
- 跨平台兼容性:VBA是一种Windows环境下的宏语言,对于其他操作系统,如Mac和Linux,并不完全适用。因此,随着人们对跨平台兼容性的需求增加,其他更通用的编程语言(如Python和JavaScript)在处理类似任务时更受欢迎。
- 功能限制:VBA虽然功能强大,但与其他现代编程语言相比,它的功能和性能受到一定的限制。人们对更高效、更灵活的解决方案的需求也推动了其他语言的发展和应用。
- Office 365的出现:随着Office 365的发展,微软逐渐将注意力转向了更先进的工具和技术。例如,Power Automate
和Power Apps等工具提供了更强大和易于使用的方式来自动化任务和定制功能。
尽管如此,VBA仍然在某些特定的行业和组织中得到广泛使用,特别是在那些长期依赖VBA开发的企业和机构
最近在做一些excel vba开发 总结了开发过程操作单元格语法,希望能帮助需要的人
实战总结
访问工作簿:
Dim wb As Workbook
Set wb = ThisWorkbook
访问工作表:
Dim ws As Worksheet
Set ws = wb.Worksheets("Sheet1")
引用单个单元格:
Dim cell As Range
Set cell = ws.Range("A1")
引用单元格范围:
Dim range As Range
Set range = ws.Range("A1:B5")
引用整行:
Dim row As Range
Set row = ws.Rows(1)
引用整列:
Dim column As Range
Set column = ws.Columns(1)
确定工作表中最后一个有数据的单元格所在行数
ws.Cells(ws.Rows.count, 1).End(xlUp).Row
- ws.Rows.Count:表示工作表的总行数。
- 1:表示要访问的列号,这里是列号为1的列(即第一列)。
- End(xlUp):这是一个定位方法,用于从指定单元格向上搜索,直到找到第一个非空单元格为止。在这个例子中,它会从工作表最后一行向上搜索,找到第一个非空单元格。
- Row:表示找到的最后一个非空单元格所在的行号。
确定工作表中指定行中最后一个有数据的单元格所在的列数
scheduleSheetLastColumn = ws.Cells(8, ws.Columns.count).End(xlToLeft).Column
- 8:表示要访问的行号,这里是第8行。
- ws.Columns.Count:表示工作表的总列数。
- End(xlToLeft):这是一个定位方法,用于从指定单元格向左搜索,直到找到第一个非空单元格为止。在这个例子中,它会从指定行的最后一列向左搜索,找到第一个非空单元格。
- Column:表示找到的最后一个非空单元格所在的列号。
第一列插入一列,并将现有的数据向右移动
ws.Columns(1).Insert Shift:=xlToRight
引用单元格 K8
Set tableStartCell = ws.Range("K8")
引用范围对象(K8~K18)
ws.Range(tableStartCell, tableStartCell.Offset(0, 10))
取消合并单元格
tableStartCell.UnMerge
设置范围(K8~K18)背景色
将其内部颜色设置为 RGB(255, 255, 0),即黄色
ws.Range(tableStartCell, tableStartCell.Offset(0, 10)).Interior.Color = RGB(255, 255, 0)
获取单元格地址代码
ws.Cells(8, 10).Address
合并单元格(K8~K10)
ws.Range(tableStartCell, tableStartCell.Offset(0, 2)).Merge
● 单元格范围公式复制
获取第 10 行第 11 列和第 10 行第 12 列的单元格的内容
Dim rangeToCopy1 As Range
Set rangeToCopy1 = ws.Range(ws.Cells(10, 11), ws.Cells(10, 12))
获取第 20 行第 11 列和第 20 行第 12 列的单元格的内容
Dim destinationRange1 As Range
Set destinationRange1 = ws.Range(ws.Cells(20, 11), ws.Cells(20, 12))
将第 10 行第 11 列和第 10 行第 12 列的单元格的内容复制到第 20 行第 11 列和第 20 行第 12 列的单元格中。
rangeToCopy1.Copy Destination:=destinationRange1
设置单元格文字样式
获取A1 到 H1 范围内的单元格
Set rng = ws.Range("A1:H1")With rng.Font.Color = RGB(0, 0, 0).HorizontalAlignment = xlLeft.Font.Size = 9.Font.Bold = False
End With
- .Font.Color = RGB(0, 0, 0) 设置字体颜色为黑色。
- .HorizontalAlignment = xlLeft 设置水平对齐方式为左对齐。
- .Font.Size = 9 设置字体大小为9号。
- .Font.Bold = False 取消粗体设置。
大鹏一日同风起 扶摇直上九万里 加油!!!!
End