系统环境:Windows 10
Excel:2010版本
@Excel结合VBA高效工作
今天讲讲常用的单元格定位函数
- 日常工作中,工作表存放数据的最大行列可能不固定
- 或者无法知道需要操作的单元格的绝对位置,但是知道其相对位置
- 当然可以使用循环去寻找,但效率偏低
循环与以下三个函数结合效果更好
函数名称 offset resize end
函数功能 平移 表格数组选取 定位最后一个
其实 只是想 用一下 Markdown表格
offset(行相对位置, 列相对位置)
- 同行为0,向下为正,向上为负
- 同列为0,向左为负,向右为正
代码如下
Sub test()
Rem>>定义工作表
Set sht = ThisWorkbook.Worksheets("举例")
sht.Cells(1, 1) = "起点位置"
sht.Cells(1, 1).Offset(1, 2) = "相对位置"
End Sub
resize(行数, 列数)
- 构成一个数组或者一个单元格区域
- 适用于特定区域整体复制
- 被复制区域与复制区域大小应一致
- 被复制区域resize后需增加.Value
代码如下:
Sub test()
Rem>>定义工作表
Set sht = ThisWorkbook.Worksheets("举例")
sht.Range("B7").Resize(1, 3) = sht.Range("B5").Resize(1, 3).Value
End Sub
end(特定参数)
- 特定参数为:xlUp,xlToLeft,xlDown,xlToRight
- xlUp:从下往上,第一个有数据的单元格
- xlToLeft:从右往左,第一个有数据的单元格
- 上下无To,左右有To
代码如下:
Sub test()
Rem>>定义工作表
Set sht = ThisWorkbook.Worksheets("举例")
MaxHang = sht.Cells(Rows.Count, "A").End(xlUp).Row
MaxLie = sht.Cells(5, Columns.Count).End(xlToLeft).Column
Debug.Print ("MaxHang=" & MaxHang)
Debug.Print ("MaxLie=" & MaxLie)
End Sub
以上为本次的学习内容,下回见 *本文为原创作品,如若转载请标明出处,如发现有错误,欢迎指正
如想了解更多,欢迎关注公众号:Excel结合VBA高效工作(原 VB与Office)
|