Excel使用VBA小程序的方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/DaiHaoC83E15/article/details/79063110

  我经常推荐大家使用微软Office而非WPS的主要原因,就是因为微软Office支持写VBA进行二次功能开发,可以写小程序对常见重复性工作进行自动化,大大提高工作效率,提升幸福度。
  这里介绍下如果别人给了一段代码,要如何进行使用。例如下述程序,可以新建、复制一份当前“工作薄”,并将所有公式转为数值,方便发布给别人查阅。

Sub 去除公式转为数值工作薄()
'[1] 初始化
    tt = Timer ' 计时器
    With Application
        .ScreenUpdating = False     '关闭屏幕更新加快执行速度
        .DisplayAlerts = False
    End With

'[2] 一个个sheet进行复制
    Set wkb0 = ActiveWorkbook
    Set wkb = Workbooks.Add '新建一个xlsx文件
    wkb.Sheets("Sheet1").name = "__保证不重名__"

    For Each st In wkb0.Sheets
        On Error Resume Next '偶尔一些表格会出错,暂时还找不到原因
        st.Copy After:=wkb.Sheets(wkb.Sheets.Count)
        Set newSt = wkb.Sheets(st.name)
        ' 每个单元格依次查看修改,否则批量修改遇到开了筛选的表格会出错
        Set rng = ActiveSheet.UsedRange
        For Each c In rng.Cells
            If c.HasFormula Then
                c.Value = c.Value
            End If
        Next
    Next st

    wkb.Sheets("__保证不重名__").Delete

'[3] 结束
    With Application
        .ScreenUpdating = True
        .DisplayAlerts = True
    End With
    Debug.Print "ok,用时 " & Timer - tt & " 秒!"
End Sub

操作方法:
Markdown

效果图:
Markdown

猜你喜欢

转载自blog.csdn.net/DaiHaoC83E15/article/details/79063110