VBA 自动化编程的一些常用技巧_vba 自动化编程的一些常用技巧是什么

deer332025-09-08技术文章29


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'