Excel中数据处理中,特别是一些重复性的工作,VBA是经常要用到的。但VBA的使用中,有一些小功能是经常要用到的,在此列出一些VBA代码,有需要的可以备用。
1、打开工作簿后,在最下面显示日期、时间或一些其它信息:
Private Sub Workbook_Open()
Worksheets("目录").Activate
Application.StatusBar =
"
今天是 " & Date & "
制作人:草爷
现在时间::" & Time
With Application
.Calculation = xlAutomatic
End With
ActiveWorkbook.PrecisionAsDisplayed = False
Application.StatusBar =
True
End Sub
此代码放在Thisworkbook区域中就行,打开工作簿时,自动定位到“目录”工作表,并在下面显示日期、时间等信息。
2、关闭屏幕弹出信息,加快运行速度
Sub 数据汇总()
Dim Start As Double,
Finish As Double '运行时间
Start = Timer
Application.ScreenUpdating = False '关闭屏幕更新
Application.DisplayAlerts = False
'屏蔽屏中弹幕
'此中间部分就是自己的VBA代码了
Application.ScreenUpdating = True '恢复屏幕更新
Application.DisplayAlerts = True
'恢复屏中弹幕
Finish = Timer
MsgBox "数据提取完毕,共用时:"
& Finish - Start & "秒"
End sub
此代码放在VBA模块区就行,运行时会关闭屏幕弹出信息,明显加快运行速度,同时最后会显示运行时间。
3、一些常用功能一行代码:
Range("a1").Value =
"hello"
'给sheet2的A1单元格中插入" hello "
Sheets("sheet1").Visible
= False
'隐藏SHEET1这张工作表
Sheets("sheet1").Visible
= True
'显示SHEET1这张工作表
MsgBox Date &
Chr(13) & Time
'得到当前得到当前日期及时间
ActiveSheet.Protect
'保护工作表
ActiveSheet.protect
password:="ccccll"
'工作表设置密码
ActiveSheet.Unprotect
'取消保护工作表
ActiveSheet.Name =
"HH"
'激活工作表改名
Worksheets.Add
'新增一张表
ActiveWorkbook.Save
'保存一张表
Application.DisplayAlerts = False
'屏蔽屏中弹幕
ActiveSheet.Delete
'删除激活表
Application.DisplayAlerts = True
'屏中弹幕恢复
Workbooks.Open
Filename:="C:/My Documents/Book1.xlsx"
'打开一张表
ActiveWindow.Close
'关闭活动窗口
Selection.HorizontalAlignment = xlLeft
'单元格格式,选定单元格左对齐
Selection.HorizontalAlignment = xlCenter
'单元格格式,选定单元格居中
Selection.HorizontalAlignment = xlRight
'单元格格式,选定单元格居右
Selection.Style =
"Percent"
'单元格格式,选定单元格为百分号风格
Selection.Font.Bold =
True
'单元格格式,粗体
Selection.Font.Italic =
True
'单元格格式,斜体
Selection.ClearContents
'清除所选范围内的数据,不清除格式
ActiveCell.Clear
'清除单元格,删除所有文字、批注、格式
MsgBox
Selection.Rows.Count
'返回选定区域的行数
MsgBox
Selection.Columns.Count
'返回选定区域的列数
Kill
"c:/1.txt"
'删除一个文件
Application.StatusBar =
"现在时刻: " & Time
'代码过程在执行过程中将定制自己的状态栏
Application.StatusBar =
False
'代码过程在执行过程中将恢复默认的状态栏
a =
Range("a1").End(xlToRight).Column
'获取工作表中数据区域的最大列数,方法1
j =
.[iv5].End(xlToLeft).Column
'获取工作表中数据区域的最大列数,方法2
i =
Range("a1").End(xlDown).Row
'取最大行号,a1代表以第一列为基准,方法1
i = Cells(Rows.Count,
1).End(xlUp).Row
'取最大行号,1代表第一列为基准,方法2
Selection.ClearContents
'清除所选范围内的数据,不清除格式
Selection.Clear
'清除所选范围内的数据,并清除格式
Range(Selection,
Selection.End(xlDown)).Select
'自动选择所有需要的行数据
Selection.Copy
'选择的数据复制
ActiveWindow.DisplayZeros =
False
'表单元格设置为0
Cells.Select
'选择全表
Cells.EntireColumn.AutoFit
'自动调整表格宽度
Selection.RowHeight =
20
'手动调整一行的高度后
Selection.AutoFilter
'所选范围筛选
ActiveWindow.LargeScroll
Down:=1
'下一页()
ActiveWindow.LargeScroll
Down:=-1
'上一页()
ActiveWindow.ScrollColumn = 13
'右翻一页()
Sheets.FillAcrossSheets
Worksheets("1").Range("A3:AH4")
'把1表的a3:AH4部分复制所有表中去
Selection.NumberFormatLocal = "yyyy-mm-dd"
'设置单元格日期格式为2020-02-10方式
Selection.NumberFormatLocal = "@"
'设置单元格为文本方式
Selection.NumberFormatLocal = "0.00_ "
'设置单元格为2位数字方式
Selection.NumberFormatLocal = "0_ "
'设置单元格为整数数字方式
Cells(i,
1).EntireRow.Delete
'整行删除
Selection.Insert
Shift:=xlDown
'向下插入空行
Sheet2.UsedRange.RemoveDuplicates Columns:=1,
HEADER:=xlNo
'表2消除重行