使用VBA的一点点积累经验
2009-01-06 17:05
288 查看
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, " ", "")
'获取真实数据的实际行数
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, " ", "")
相关文章推荐
- 使用Keil C调试某系统时积累的一些经验
- 应用工具的使用经验积累
- Asp.net mvc 使用echart的一点点经验
- vim使用经验积累
- EasyPHP 使用经验积累
- designer的一些使用方法(一点点积累)
- 初学SQL使用经验积累
- [Caffe]使用经验积累
- Linux初步使用经验积累
- Office使用经验——一键移除文章中的多余空行(分享VBA源码)
- emacs使用经验积累
- MySQL使用Amoeba主从分离的一点点经验
- linux 使用经验积累
- 使用fs传真模块mod_fax的一点点经验
- cocos使用经验积累
- 使用Apache POI抽取OFFICE文本(DOC, DOCX, XLS, XLSX, PPT, PPTX)——Desktop Search开发笔记【经验积累】
- 【每天积累一点点】BottomNavigationView使用教程
- 与客户交流培训产品使用经验积累
- 使用Linux五年积累的一些经验技巧