加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Excel中VBA的几个小功能(更新中。。。)

(2020-07-01 09:02:26)
标签:

365

分类: Excel相关
     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消除重行

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有