今日繼續講VBA實用代碼的第十講,相信大家通過這系列的文章學到了很多,今日着重講解OFFSET函數在VBA中的利用。
1 Range("A32", Range("A32").End(xlUp)).Select
Range(ActiveCell, ActiveCell.End(xlUp)).Select
語句說明:執行上述代碼后選擇當前活動單元格向上至第一個非空單元格:
備注:ActiveCell是指當前活動單元格。
2 Range("A1", Range("A1").End(xltoRight)).Select
Range(ActiveCell, ActiveCell.End(xltoLeft)).Select
語句說明:執行上述代碼后選擇當前活動單元格向右至第一個非空單元格。
備注:是 "xlTORight"而不是 "xlRight"
3 Range("A2", Range("A2").Offset(0, 10)).Select
Range(ActiveCell, ActiveCell.Offset(0, 10)).Select
語句說明:執行上述代碼后選擇當前活動單元格向右至第10個單元格。
備注: OFFSET函數的意義與EXCEL函數中的意義有所不同。可以把他看做一個單元格的屬性,即Range.Offset 屬性。返回 Range 對象,它代表位於指定單元格區域的一定的偏移量位置上的區域。
表達式:Offset(RowOffset, ColumnOffset)
其中參數:RowOffset, ColumnOffset代表偏移行,列。數字可以是正數,負數,零值
RowOffset 可選 Variant 區域偏移的行數(正數、負數或0(零))。正數表示向下偏移,負數表示向上偏移。默認值是 0。
ColumnOffset 可選 Variant 區域偏移的列數(正數、負數或0(零))。正數表示向右偏移,負數表示向左偏移。默認值是 0。
4 Range("A20", Range("A20").Offset(0, -10)).Select
Range(ActiveCell, ActiveCell.Offset(0, -10)).Select
語句說明:執行上述代碼后選擇當前活動單元格向左至第10個單元格。
備注:ColumnOffset 代表 Variant 區域偏移的列數,負數表示向左偏移。
5 Range("a2", Range("a2").Offset(10, 0)).Select
Range(ActiveCell, ActiveCell.Offset(10, 0)).Select
語句說明:執行上述代碼后,選擇當前活動單元格向下至第10個單元格。
備注:RowOffset 代表Variant 區域偏移的行數,正數表示向下偏移,負數表示向上偏移。默認值是 0。
6 Range("A1").End(xlDown).Offset(1, 0).Select
語句說明:執行上述代碼后,選擇該行中第一個空單元格
備注:End(xlDown)是指向下移動
7 Range("A1").End(xltoRight).Offset(0,1).Select
語句說明:執行上述代碼后,選擇該列中第一個空單元格:
備注:End(xltoRight)是向右移動。
8 ActiveCell.Offset(0, -ActiveCell.Column + 1).Select
語句說明:執行上述代碼后,移至當前行的第一個單元格的動作(即你按下“Home”鍵的動作)
ActiveCell.Offset( -ActiveCell.Row + 1,0).Select
語句說明:執行上述代碼后,移至當前列的第一個單元格:
備注:充分利用OFFSET函數,實現單元格的選擇。
看下面的代碼:

運行:


9 ActiveCell.Offset(13, 14).Select
Selection.Offset(-3, -4).Select
語句說明:執行上述代碼后,單元格間移動。
備注:你可以定義一變量,並且用offset來實現,
例如:varFreightRowsCount = Range("A1").CurrentRegion.Rows.Count
ActiveCell.Offset(varFreightRowsCount, 0).Select
今日內容回向:
1 OFFSET函數在VBA和EXCEL中有什么不同?
2 OFFSET函數在VBA中有哪些精彩利用
我從事管理工作多年,這一系列文章是根據多年的經驗編寫的,也是一直在利用的工具,非常方便好用。現在分享出來,希望能對同樣在職場打拼的朋友有些許的幫助。
我的公眾號“NZ_9668”和“VBA學習交流社群”里有更多的內容分享。對數據分析有需要的公司、組織或個人可以直接聯系我,為你提供專業的技術支持。朋友們有問題請隨時提出來,我們一起探討學習。目的是能更好地利用Excel和VBA,提高工作效率,能有更多的時間和精力享受生活。
