VBA 自动化编程的一些常用技巧_vba 自动化编程的一些常用技巧是什么
1. 选中最下,最上,最左,最右的单元格
Range对象的end()方法可以传递以下几个常量,分别实现底端上下左右的选择。
常量 値 内容 对应键盘操作 xlUp -4162 上方向移動 [Ctrl] + [↑] xlDown -4121 下方向移動 [Ctrl] + [↓] xlToLeft -4159 左方向移動 [Ctrl] + [←] xlToRight -4161 右方法移動 [Ctrl] + [→]
<例子1>
Sub Sample1()
'从A1选择最下面的单元格
Range('A1').End(xlDown).Select
End Sub
例子1 虽然可行,但有些情况却不太方便。比如以下两种情况。那就需要用到例子2中的写法。
o A1到A列最后一行中有空格。
o A列为空。
________________________________________
<例子2>
Sub Sample2() '----A列最終行向上找的第一行 Cells(Rows.Count, 1).End(xlUp).Select End Sub
这样写就比较安全了。
2. 打开文件操作
Application的下面这个方法可以很方便的打开各种文件。
o GetOpenFilename( FileFilter, FilterIndex, Title, ButtonText, MultiSelect)
参数FileFilter指定任意的字符串描述想要打开的类型,比如“excel文件”。然后指定类型。可以用通配符。
o 关于用户取消操作实际操作中会弹出一个对话框让你选文件,如果什么文件都不选就关闭对话框,这时的返回值为False。
<例子3>
Dim OpenFileName As String
OpenFileName =
Application.GetOpenFilename('excel文件,*.xls?;*.xlsx')
'用户取消了操作
If (OpenFileName = 'False') Then
End
End If
Workbooks.Open OpenFileName
3. 取消画面渲染
如果做的处理比较耗时,可以取消画面渲染加快处理速度。
Application.ScreenUpdating = False // 做一些比较耗时的处理
Application.ScreenUpdating = True
4. 单元格相对位置
Range.Offset(行方向, 列方向)来获取相对位置。正数代表往下,往右。所以下面的例子是B2左边一列,也就是A2。
Range('B2').Offset(0, -1)
5. 声明变量同时赋值
普通声明一个变量就是Dim xx as xx。同时赋值要再写一遍变量名。。。不得不说真的很麻烦。
Dim S_ROW As Integer: S_ROW = Range('A1')
6. 不显示确认对话框
做一些删除之类的操作,如果程序里不自动屏蔽对话框的话,自动化就无从谈起了。以下是个简单的例子。
Application.DisplayAlerts = False
Worksheets('sheet1').Delete
Application.DisplayAlerts = True
7. 保存工作簿
Workbook.SaveAs方法。设置Filename参数即可。
Dim book1 As Workbook book1.SaveAs Filename:=ThisWorkbook.Path & '\AutoSheet.xlsx'