獲取Excel Sheet中資料單元格的結尾位置

2021-09-02 13:31:34 字數 1648 閱讀 7430

在excel vba開發過程中經常會遇到遍歷sheet中的資料,常常我們會使用

for i=1 to maxrow

for j=1 to maxcolumn

next j

next i

其中的maxrow和maxcolumn是sheet中資料所在行數的最大值和列數最大值(也就是結尾位置),使用usedrange.rows.count和usedrange.columns.count只能獲取到資料總共行數和列數,往往資料區存在空白的行和列,這樣就usedrange.rows.count和usedrange.columns.count就有可能小於

maxrow和maxcolumn,縮小了資料遍歷的範圍,那我們怎樣獲取

maxrow和maxcolumn的值呢?

我們可以使用find()函式。

maxrow = cells.find("*", range("a1"), xlformulas, , xlbyrows, xlprevious).row

maxcolumn = cells.find("*", range("a1"), xlformulas, , xlbycolumns, xlprevious).column

這樣就能遍歷完整的資料區了。

find函式

在區域中查詢特定資訊,並返回 range物件,該物件代表用於查詢資訊的第乙個單元格。如果未發現匹配單元格,就返回 nothing。本方法不影響選定區域或活動單元格。

expression.find(what, after, lookin, lookat, searchorder, searchdirection, matchcase, matchbyte, serchformat)

expression   必需。該表示式返回乙個 range物件。

what   variant 型別,必需。要搜尋的資料。可為字串或任意 microsoft excel 資料型別。

after   variant 型別,可選。表示搜尋過程將從其之後開始進行的單元格。此單元格對應於從使用者介面搜尋時的活動單元格位置。值得注意的是,after 必須是區域中的單個單元格。請記住搜尋是從該單元格之後開始的;直到本方法繞回到指定的單元格時,才對其進行搜尋。如果未指定本引數,搜尋將從區域的左上角單元格之後開始。

lookin   variant 型別,可選。資訊型別。

lookat   variant 型別,可選。可為以下 xllookat 常量之一:xlwhole 或 xlpart。

searchorder   variant 型別,可選。可為以下 xlsearchorder 常量之一:xlbyrows 或 xlbycolumns。

searchdirection  xlsearchdirection 型別,可選。搜尋的方向。

xlsearchdirection 可為以下 xlsearchdirection 常量之一。

xlnext 預設值

xlprevious

matchcase   variant 型別,可選。若為 true,則進行區分大小寫的查詢。預設值為 false。

matchbyte   variant 型別,可選。僅在選擇或安裝了雙位元組語言支援時使用。若為 true,則雙位元組字元僅匹配雙位元組字元。若為 false,則雙位元組字元可匹配其等價的單位元組字元。

searchformat   variant 型別,可選。搜尋的格式

如何在EXCEL SHEET中 動態新增控制項

excel sheet中如何新增下拉框或者 文字框,命令按鈕?下面的方法就可以 1 新建worksheet 2 開啟visiual basic編輯器 3 選擇sheet1 的worksheet selectionchange 事件 4 編寫 如下 private sub worksheet sele...

如何在EXCEL SHEET中 動態新增控制項

excel sheet中如何新增下拉框或者 文字框,命令按鈕?下面的方法就可以 1 新建worksheet 2 開啟visiual basic編輯器 3 選擇sheet1 的worksheet selectionchange 事件 4 編寫 如下 private sub worksheet sele...

vue中非同步資料獲取(確保資料被獲取)

import from api article 在created中即開始獲取 created methods await fetchlist this listquery 被await阻塞的 const items data.items this list items.map v this list...