函数名称:OFFSET
以指定的引用为参照系,通过给定偏移量得到新的引用。返回的引用可以为一个单元格或单元格区域。并可以指定返回的行数或列数。
语法
OFFSET(reference,rows,cols,height,width)
参数说明
Reference 作为偏移量参照系的引用区域。Reference 必须为对单元格或相连单元格区域的引用;否则,函数 OFFSET 返回错误值 #VALUE!。
Rows 相对于偏移量参照系的左上角单元格,上(下)偏移的行数。如果使用 5 作为参数 Rows,则说明目标引用区域的左上角单元格比 reference 低 5 行。行数可为正数(代表在起始引用的下方)或负数(代表在起始引用的上方)。
Cols 相对于偏移量参照系的左上角单元格,左(右)偏移的列数。如果使用 5 作为参数 Cols,则说明目标引用区域的左上角的单元格比 reference 靠右 5 列。列数可为正数(代表在起始引用的右边)或负数(代表在起始引用的左边)。
Height 高度,即所要返回的引用区域的行数。Height 必须为正数。
Width 宽度,即所要返回的引用区域的列数。Width 必须为正数。
说明
如果行数和列数偏移量超出工作表边缘,函数 OFFSET 返回错误值 #REF!。
如果省略 height 或 width,则假设其高度或宽度与 reference 相同。
函数 OFFSET 实际上并不移动任何单元格或更改选定区域,它只是返回一个引用。函数 OFFSET 可用于任何需要将引用作为参数的函数。例如,公式 SUM(OFFSET(C2,1,2,3,1)) 将计算比单元格 C2 靠下 1 行并靠右 2 列的 3 行 1 列的区域的总值。
示例举例
1.以A1为参照对象,往下移一行,再往右移3列,即选择D2单元格。
Range("A1").Offset(1,3).Select
2.以D16为参照对象,往上移2行,再往左移1列,即选择C14单元格。
Range("D16").Offset(-2,-1).Select
3.选择同列单元格(上一行)
ActiveCell.Offset(-1,0).Select
4.重新选取区域
ActiveCell.Offset(2,2).Resize(2,4).Select
再比如:
=OFFSET(C3,2,3,1,1) 显示单元格 F5 中的值 (0)
=SUM(OFFSET(C3:E5,-1,0,3,3)) 对数据区域 C2:E4 求和 (0)
=OFFSET(C3:E5,0,-3,3,3) 返回错误值 #REF!,因为引用区域不在工作表中