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消除重行