Excel中VBA简单的编程技巧
提醒:本页面将不再更新、维护或者支持,文章、评论所叙述内容存在时效性,涉及技术细节或者软件使用方面不保证能够完全有效可操作,请谨慎参考!
最近在单位经常要整理Excel表格,大量的数据有时候用公式函数处理也略显麻烦,这时我们可以使用Excel的VBA特性,打开VBA编辑器。
我们需要给要处理的表指派一个任务,这时我们可以建立子过程,建立的方式只要输入:
Sub Sample()
' TODO : 这里写执行代码
End Sub
这样我们就建立起名称为Sample的子过程,下面我们可以单击运行箭头,然后在宏列表中选择我们的子过程执行,不过现在没有代码,所以将不会有什么结果。
将上面的代码改成下面这样,再次运行,就可以看到消息框“Hello, World”。
Sub Sample()
MsgBox "Hello, World"
End Sub
好了,下面需要给子过程指派指定的工作表,比如工作表名为Sheet1,下面几步建立起工作表的关联。
Sub Sample()
Dim ws As Worksheet
' 设定ws引用Sheet1对象
Set ws = Worksheets("Sheet1")
ws.Activate ' 激活指定的表
' TODO : 这里放对表操作的代码
Set ws = Nothing ' 销毁对象引用
End Sub
两个常见的操作是设置行高(RowHeight)和列宽(ColumnWidth)。我们可以通过ActiveSheet.Rows( 行数 )获得指定行的对象,或者通过ActiveSheet.Columns( 列数 )获得列对象,那么行高和列宽的设置可以像下面这样:
Sub Sample()
Dim ws As Worksheet
' 设定ws引用Sheet1对象
Set ws = Worksheets("Sheet1")
ws.Activate ' 激活指定的表
ActiveSheet.Rows(1).RowHeight = 30
ActiveSheet.Columns(1).ColumnWidth = 10
Set ws = Nothing ' 销毁对象引用
End Sub
需要注意的是,行和列都是从1开始数起。
接下来就是对每个单元格的操作了,刚才我们设定ws引用Sheet1对象,那么单元格对象就是ws.Cells( 行数 , 列数 )。
Sub Sample()
Dim ws As Worksheet
Set ws = Worksheets("Sheet1") ' 设定ws引用Sheet1对象
ws.Activate ' 激活指定的表
Dim i As Integer
For i = 1 To 50
' 设置第3列1~50行的单元格值
ws.Cells(i, 3).Value = 0
' 设置第4列1~50行的单元格文本
ws.Cells(i, 4).Text = "hi"
Next i
Set ws = Nothing ' 销毁对象引用
End Sub
好的先介绍这么多,如果大家想深入研究,不妨参阅 《Microsoft Excel Visual Basic参考》 。