出于提高效率的原因,希望excel能够不需要人为干预的完成一些操作,学习excel宏的编写与调试:
第一列输入公式,第二类输出计算结果:(如果自动获取文件的行数,待补充)
Sub Calc()a = [a1].Value[b1].Value = Evaluate(a)a = [a2].Value[b2].Value = Evaluate(a)a = [a3].Value[b3].Value = Evaluate(a)End Sub
改进:自动识别行数
Sub Calc() Dim i As Long, lastRow As Long lastRow = GetLastRow(Worksheets("Sheet1"), 1) For i = 1 To lastRow a = Cells(i, 1).Value Cells(i, 2).Value = Evaluate(a) Next iEnd SubFunction GetLastRow(ByVal TheSheet As Worksheet, ByVal col As Variant) As Integer Dim findrg As Range, ret As Range Set findrg = TheSheet.Columns(col) Set ret = findrg.Find(what:="*", searchdirection:=xlPrevious) If Not ret Is Nothing Then GetLastRow = ret.Row Else GetLastRow = 0 End IfEnd Function
其他:
1.如果想要宏生效,需要设置下:选项->信任中心->信任中心设置->宏设置->启用所有宏;
2.如果想要在每个excel打开时,你的宏都可以用,需要在编写好宏后,将宏保存在%programfiles%\Microsoft Office\Office12\XLSTART路径下,保存格式Excel加载宏,如Calc.xlam
3.如果想要更高的效率,可以设置快捷键(待补充)
4.为了美观,可以用点按钮来触发宏(待补充)
5.调试环境(待补充)
6.宏名字在调用时,不区分大小写(待核实)
7.宏列表(快捷键"Alt+F8")
8.Alt+F11
参考:
(待研究)