录制宏存在哪些致命的缺点

通过前面的学习,我们可以录制宏,指定宏按钮,启用宏,也可以删除宏。

不是所有的操作都可以录制,有时候,发现录制了一个空空如也。

1.录制宏会有大量多余的代码

如果录制一个宏,将选择的单元格,上下左右均加边框。天呀,居然有以下如此长的代码。

Sub Macro1()

Selection.Borders(xlDiagonalDown).LineStyle = xlNone

Selection.Borders(xlDiagonalUp).LineStyle = xlNone

With Selection.Borders(xlEdgeLeft)

.LineStyle = xlContinuous

.Weight = xlThin

.ColorIndex = xlAutomatic

End With

With Selection.Borders(xlEdgeTop)

.LineStyle = xlContinuous

.Weight = xlThin

.ColorIndex = xlAutomatic

End With

With Selection.Borders(xlEdgeBottom)

.LineStyle = xlContinuous

.Weight = xlThin

.ColorIndex = xlAutomatic

End With

With Selection.Borders(xlEdgeRight)

.LineStyle = xlContinuous

.Weight = xlThin

.ColorIndex = xlAutomatic

End With

With Selection.Borders(xlInsideVertical)

.LineStyle = xlContinuous

.Weight = xlThin

.ColorIndex = xlAutomatic

End With

With Selection.Borders(xlInsideHorizontal)

.LineStyle = xlContinuous

.Weight = xlThin

.ColorIndex = xlAutomatic

End With

End Sub

这段代码如果自己来编写,简短了好多

Sub Macro3()

With Selection

.Borders(xlEdgeLeft).LineStyle = xlContinuous

.Borders(xlEdgeTop).LineStyle = xlContinuous

.Borders(xlEdgeBottom).LineStyle = xlContinuous

.Borders(xlEdgeRight).LineStyle = xlContinuous

.Borders(xlInsideVertical).LineStyle = xlContinuous

.Borders(xlInsideHorizontal).LineStyle = xlContinuous

End With

End Sub

宏不可以实现人机对话

比如电脑问你,你来回答,从而执行操作,如下典型的人机对话,录制宏实现不了。

无法实现循环分支

比如从第一个文件一直到最后一个文件,或者是满足某个条件执行某种操作,这些都无法通过录制宏来实现。

缺少通用性,不够灵活

假设录制了一个宏,一键将这个月的员工信息,数据分析并生成图表,下个月,公司又添加了几个员工,再次运行可能出错。

所以我们还是需要自己来编写一些代码。仅管如此,初学者可以大量利用录制的宏,稍做些修改,然后就可以实现特殊的效果。

从下一文章,开始自己编写一些简单的代码。

子曰:用之则行,不用则藏。

意思是说,如果你用我的这些建议,就马上行动,知行合一,如果你不用,就赶紧收藏,以绝后患。

(0)

相关推荐