yuanweisen

 

使用VBA的一点点积累经验

1 写VBA函数的时候,如果函数有返回值,则写成如下形式

 

'获取真实数据的实际行数
Public Function GetMaxRow() as integer
For i = MinRow To MaxRow    '循环最小行到最大行
    For j = MinCol To MaxCol    '循环最小列到最大列
        If Trim(Cells(i, j).Value) <> "" Then    '如果该行有一列值不为空,则视为有效行
            Exit For
        Else                 '如果这一行每一个值都为空,而且直到最后一列的值都为空,则说明该行为空
            If j = MaxCol Then    '以后的数据均视为无效
                GoTo a          '跳出所有循环,得到实际数据的最大行
            End If
        End If
    Next

Next
a:
GetMaxRow = i
End Function

2 在写一些比较特殊的功能的时候,比如将某列设置有效性->列序的时候,代码比较复杂,可直接操作设置,录制宏,保存后直接使用录制的宏的代码即可。

3 几个常用事件

如果是打开或关闭时的事件,则在WeekBook里找open或close就可以,如果是操作某Sheet里的VB控件,则要加上Sheet名。

4 如果要替换掉字符串中的某些字符,可以用VBA函数VBA.Replace(),如

For i = MinRow To MR
    MTM = Cells(i, 3).Value
       MTM = VBA.Replace(MTM, " ", "")
   MTM = VBA.Replace(MTM, "-", "")
   Cells(i, 3) = MTM
Next

也可以用工作表函数WorksheetFunction.Substitute(MTM, " ", "")

posted on 2009-01-06 17:05    阅读(404)  评论(0编辑  收藏  举报

导航