【Excel】宏之初认识

出于提高效率的原因,希望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 i

End Sub



Function 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 If

End Function

 

其他:

1.如果想要宏生效,需要设置下:选项->信任中心->信任中心设置->宏设置->启用所有宏;

2.如果想要在每个excel打开时,你的宏都可以用,需要在编写好宏后,将宏保存在%programfiles%\Microsoft Office\Office12\XLSTART路径下,保存格式Excel加载宏,如Calc.xlam

3.如果想要更高的效率,可以设置快捷键(待补充)

4.为了美观,可以用点按钮来触发宏(待补充)

5.调试环境(待补充)

6.宏名字在调用时,不区分大小写(待核实)

7.宏列表(快捷键"Alt+F8")

8.Alt+F11

 

参考:

(待研究)http://www.cnblogs.com/dxy1982/archive/2011/08/31/2159231.html

http://www.cnblogs.com/wdpp/archive/2012/02/13/2387078.html

http://www.cnblogs.com/kenyang/archive/2012/05/16/2503846.html

你可能感兴趣的:(Excel)