Offset
Excel中的OFFSET函數
Offset是Excel中的函數,在Excel中,OFFSET函數的功能為以指定的引用為參照系,通過給定偏移量得到新的引用。返回的引用可以為一個單元格或單元格區域。並可以指定返回的行數或列數。Reference 作為偏移量參照系的引用區域。Reference 必須為對單元格或相連單元格區域的引用;否則,函數 OFFSET 返回錯誤值#VALUE!。
offset變數名或標號
彙編程序將回送變數或標號的偏移地址。
函數語法
OFFSET(reference,rows,cols,height,width)
Reference 作為偏移量參照系的引用區域。
Rows相對於偏移量參照系的左上角單元格,上(下)偏移的行數。如果使用 5 作為參數 Rows,則說明目標引用區域的左上角單元格比 reference 低 5 行。行數可為正數(代表在起始引用的下方)或負數(代表在起始引用的上方)。
Cols 相對於偏移量參照系的左上角單元格,左(右)偏移的列數。如果使用 5 作為參數 Cols,則說明目標引用區域的左上角的單元格比 reference 靠右 5 列。列數可為正數(代表在起始引用的右邊)或負數(代表在起始引用的左邊)。
Height高度,即所要返回的引用區域的行數。Height 不可為負
Width寬度,即所要返回的引用區域的列數。Width 不可為負
offset 在彙編中可以獲得操作數的偏移地址。用法:
例如:平時invoke MessageBox,NULL,addr sztext,addr szcaption,MB_OK
當然前面已經定義過sztext和szcaption為字元串了
szcaption db '小例子',0
sztext db 'powerful!',0
此時 invoke MessageBox,NULL,addr sztext,addr szcaption,MB_OK可以寫為
push MB_OK
push offset szcaption
push offset sztext
push NULL
call MessageBox
這樣看起來就更接近彙編語言習慣了,當然用invoke更簡單點,這裡只是為了說明 offset用法;
如果行數和列數偏移量超出工作表邊緣,函數 OFFSET 返回錯誤值 #REF!。
如果省略 height 或width,則假設其高度或寬度與 reference 相同。
函數 OFFSET 實際上並不移動任何單元格或更改選定區域,它只是返回一個引用。函數 OFFSET 可用於任何需要將引用作為參數的函數。例如,公式 SUM(OFFSET(C2,1,2,3,1)) 將計算比單元格C2 靠下 1 行並靠右 2 列的 3 行 1 列的區域的總值。
如果您將示例複製到空白工作表中,可能會更易於理解該示例。
A | B | |
1 | 公式 | 說明(結果) |
2 | =OFFSET(C3,2,3,1,1) | 顯示單元格 F5 中的值 (0) |
3 | =SUM(OFFSET(C3:E5,-1,0,3,3)) | 對數據區域 C2:E4 求和 (0) |
4 | =OFFSET(C3:E5,0,-3,3,3) | 返回錯誤值 #REF!,因為引用區域不在工作表中 |
在Excel中,Offset屬性應用於下面兩個對象
應用於 Range 對象的 Offset 屬性。
返回一個Range對象,該對象代表某個指定區域以外的區域。只讀。
expression.Offset(RowOffset, ColumnOffset)
expression 必需。該表達式返回一個 Range 對象。
RowOffset Variant 類型,可選。區域偏移的行數(正值、負值或 0(零))。正值表示向下偏移,負值表示向上偏移,默認值為 0。
ColumnOffset Variant 類型,可選。區域偏移的列數(正值、負值或 0(零))。正值表示向右偏移,負值表示向左偏移,默認值為 0。
應用於 TickLabels 對象的 Offset 屬性。
返回或設置各級別標籤之間的距離以及第一級標籤與坐標軸之間的距離。其默認距離為百分之百,代表坐標軸標籤與坐標軸之間的默認距離。其值可以為從 0 到 1000 之間的一個整數百分比,表示相對於坐標軸標籤的字體大小。Long 類型,可讀寫。
expression.Offset
expression 必需。該表達式返回一個TickLabels對象。
應用於 Range 對象的示例。
本示例激活 Sheet1 上活動單元格向右偏移三列、向下偏移三行處的單元格。
Worksheets("Sheet1").Activate
ActiveCell.Offset(rowOffset:=3, columnOffset:=3).Activate
本示例假定 Sheet1 中包含一個具有標題行的表格。本示例先選定該表格,但並不選擇標題行。運行本示例之前,活動單元格必須位於表格中。
Set tbl = ActiveCell.CurrentRegion
tbl.Offset(1, 0).Resize(tbl.Rows.Count- 1, tbl.Columns.Count).Select
應用於 TickLabels 對象的示例。
如果偏移量小於 500,則本示例將 Chart1 中數值軸上標籤之間的距離設置為當前距離的兩倍。
WithCharts("Chart1").Axes(xlValue).TickLabels
If.Offset < 500 then
.Offset = .Offset * 2
End If
End With
offset()
獲取匹配元素在當前視口的相對偏移。
返回的對象包含兩個整形屬性:top 和 left。此方法只對可見元素有效。
Get the current offset of the first matched element relative to the viewport.
The returned object contains two Integer properties, top and left. The method works only with visible elements.
當用於返回偏移時:
該方法返回第一個匹配元素的偏移坐標。它返回一個帶有兩個屬性(以像素為單位的 top 和 left 位置)的對象。
當用於設置偏移時:
該方法設置所有匹配元素的偏移坐標。
Object{top,left}
獲取第二段的偏移
HTML 代碼:
Hello
2nd Paragraph
jQuery 代碼:
var p = $("p:last");
var offset = p.offset();
p.html( "left: " + offset.left + ", top: " + offset.top );
結果:
Hello
left: 0, top: 35