【VBA研究】用VBA取得EXCEL任意列有效行數
作者:iamlaosong
用VBA對Excel檔案進行處理的時候,關鍵欄位的列號程式設計時往往是不知道的,需要通過引數設定才能知道,因此,我們程式設計的時候,就不能用這樣的語句取有效行數:
lineno = [B65536].End(xlUp).Row '從下至上找有效行數
上述語句中的列名“B”如果是變數,可以用字串連線的方式實現,即:
pos_ems = "C"
lineno = Range(pos_ems & "65536").End(xlUp).Row
如果給的是列號,則用下列語句:
pos_ems = 3
lineno = Cells(65536, pos_ems).End(xlUp).Row
如果該列所有需要處理的單元格都有值,也可以用下列語句:
lineno = [B1].End(xlDown).Row '從上至下找有效行數
或者 ineno = Cells(pos_fst, pos_ems).End(xlDown).Row語句中的pos_fst是有效資料的起始行,這個語句的好處是不用管工作表最大行數是65536還是1048576,缺點是如果有效資料只有一行或者該列有空值的話,將取不到有效行數,這也是這種方法不常用的主要原因。
上述語句中的變數pos_ems可以讀取單元格的值,以便面對不同檔案時隨時設定:
。。。pos_fst = Cells(2, 7) pos_ems = Cells(3, 7) pos_sav = Cells(4, 7) lineno = [B65536].End(xlUp).Row '行數,檔案數量 For unit_num = 5 To lineno '檔案迴圈 datfile = Cells(unit_num, 2) '檔名稱 datFullName = ThisWorkbook.Path & "\" & datfile If Dir(datFullName, vbNormal) <> vbNullString Then Workbooks.Open Filename:=datFullName '開啟訂單檔案 If Application.Version >= "12.0" And ActiveWorkbook.FileFormat = 51 Then maxrow = Cells(1048576, pos_ems).End(xlUp).Row Else maxrow = Cells(65536, pos_ems).End(xlUp).Row End If Else MsgBox "資料檔案不存在!", vbOKOnly, "iamlaosong" Exit Sub End If
Excel的版本不同,最大行數和列數不同。2003版最大行數是65536行,最大列數是256列(最後一列IV)。Excel2007及以後的版本最大行數是1048576行,最大列數是16384列(最後一列XFD)。
開啟一個空白新建EXCEL表格,按CTRL+下箭頭,可以檢視到最大行數;按CTRL+右箭頭,可以檢視到最大列標(若想顯示列數,可在最右一列的某單元格中輸入=column()回車,出現數字就是最大列數)。
相關推薦
【VBA研究】用VBA取得EXCEL任意列有效行數
作者:iamlaosong 用VBA對Excel檔案進行處理的時候,關鍵欄位的列號程式設計時往往是不知道的,需要通過引數設定才能知道,因此,我們程式設計的時候,就不能用這樣的語句取有效行數:
【VBA研究】儲存和開啟Excel檔案的程式碼
iamlaosong文 經常用到儲存處理之後的Excel檔案,儲存的格式有xls和xlsx兩種,這裡記錄一下儲存程式碼,因為經常用到。不同版本下指定儲存檔案格式的常數略有不同,下面是2010版將已開啟的檔案儲存為xlsx格式的程式碼:  
VBA取得EXCEL表格中的行數和列數
VBA取得EXCEL表格中的行數和列數 初學EXCEL巨集的童鞋,總是很想知道表格中含有資料的行數和列數,尤其是行數和列數不確定的情況下。這樣可以避免很多的錯誤,並且可以提高效率。但每次用到的時候到網上查詢時,總是給了很多無用的答案,往往找不到想要的
【VBA研究】Excel在64位系統安裝目錄造成的ORA-06413:連線未開啟錯誤
我做的excel工具,連線oracle資料庫查詢資料,平時可以很好的執行,無論是XP和win7都可以。後來碰到一臺win7(64位)的系統,發現無法連線資料庫,報“ORA-06413: 連線未開啟”錯誤。 錯誤描述: 用ORACLE的工具裡的sqlplus可以連線,可是
【VBA研究】工作表自己主動篩選模式檢測
模式 處理 name ins work sdn edr rda all 作者:iamlaosong 用VBA程序處理Excel數據文件。用戶的數據文件有時處於自己主動篩選模式,往往導致數據處理不對。為此,須要檢測工作表是否處於該模式,假設是,則去掉自己主動篩選。語
【VBA研究】奇怪的“?”----Unicode格式的字元處理
iamlaosong文 1、從網站匯出的Excel檔案單元格內容後面多了一個不可見字元,怎麼造成的不知道,但不是每一列都有。想要用VBA程式碼去掉,就要先判斷出是什麼字元,將內容複製到文字環境中(比如程式設計環境或者UltraEdit中),發現最後面那個是個“?”,Asc()函式取其碼值也是
【VBA研究】讀取Unix下的文字檔案到工作表
iamlaosong文 通常在VBA中讀檔案檔案時,習慣使用Line Input #fileNo, str的方法,這個方法對Windows下的文字檔案是可以的,例如下面的程式碼就是讀取文字檔案中的資料到Excel表中: Sub ImpData1() Dim datFullName
【VBA研究】呼叫API實現漢字簡繁互換
iamlaosong文 Excel的VBA功能非常強大,但再強大的東西也需要藉助別的東西,API呼叫就可以完成很多VBA本身沒有的功能,一些已有的功能也是VBA呼叫API實現的。下面的漢字簡繁轉換程式碼,就是呼叫API完成的。 關於API呼叫,網上有很多資料。學習程式設計首先是模仿,我在
【VBA研究】如何用VBA讀取檔案的日期時間
iamlaosong文 檔案的日期時間分建立時間和修改時間,檔案一旦建立,建立時間就定下不變了,所以日常應用中一般都是取修改時間,我的一個應用(生成二維碼)中就是取這個時間判斷圖片檔案是否重新生成。 1、取檔案的修改時間VBA有專門的函式FileDateTime,如下面的語句:
【VBA研究】VBA中如何用求和函式SUM求和
SUM是Excel的函式,在VBA中呼叫需要加上Application.WorksheetFunction.Sum(),但是,Excel寫法卻不能用。 比如,excel單元格中可以寫成=sum(d2:d100),VBA中是不能這麼寫的,即使加上引號寫成Applicati
【VBA研究】解析JSON資料的幾種方法
iamlaosong文 網抓資料或者通過介面接收資料時,發來的資料很多是JSON格式,這是JavaScript常用的一種資料結構。對這種資料如何解析呢?先假定發來的資料如下,並針對這個資料給出幾種解析
【VBA研究】Application.Calculation狀態影響VBA執行速度
作者:iamlaosong 發現一個現象,當Application.Calculation為自動計算狀態時,如果工作表中存有公式,2003版似乎並不降低VBA的執行速度,但2007版則影響很大,速度降
【NVivo教程】用Nvivo為研究團隊設立主專案
Nvivo Windows 中的協作板塊主要提供將單個個人專案合併為“master project”的想法並實施。NVivo可以豐富您對研究的理解,幫助你得到強大可靠的研究結果。 團隊領導建立主專案並將副本分發給團隊成員,然後團隊成員可以在他們各自的專案副本中編碼、註釋和
【Python】用python對excel進行讀寫
Description 0014 :純文字檔案 student.txt為學生資訊, 裡面的內容(包括花括號)如下所示: { "1":["張三",150,120,100], "2":["李四",90,99,95], "3":[
用VBA得到EXCEL表格中的行數和列數
方法3: ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Column 缺點:在工作表進行對刪除或清除操作時也會變得比實際情況大。方法
【第一組】用例文檔,功能說明書,技術說明書
正在 分鐘 委托 reading 簡單 觸發 作業 聲音 暫時 場景:用戶使用自習助手 1.背景: (1)典型用戶:正在上自習的東北大學學生 (2)用戶的需求/迫切解決的問題:用戶在上自習時如何專心學習 (3)假設:用戶正確安裝本軟件 2.場景:關於這個場景的文字描述
【第二組】用例文檔+功能說明書+技術說明書
str password 點擊事件 註冊界面 ext 漸變 pass tdi 能說 標題一:用戶註冊後進入遊戲主頁面 角色:首次使用Hunter的用戶 主要成功場景: 用戶點擊註冊; 用戶在用戶名文本框中輸入用戶名 用戶在密碼文本框中輸入密碼 用戶在確認密碼文本框中再一次
【C/C++】:用C實現輸出日期的陰歷日子
print http this while lunar void 大小 oid pan 前言 輸出陰歷一直是個老大難的問題。由於陰歷日子沒有規律。所以這裏須要做的就是通過打表的算法做到輸出陰歷日子,可是非常多人都不太了解原理,我這裏就給大家送上了一個福
【Web前端】用CSS3實現彈幕
font ram hover 字符 才會 命令 .sh left window 初版 用css3來實現彈幕確實比較簡單,只需要設置動畫讓彈幕從屏幕右側移動到屏幕左側即可,一開始是這樣實現的 .danmu { position: fixed; left: 100%
【Chapter 3】用戶體驗分析
image blog 評論 gin 自己 img 結束 基於 margin 在我們日常生活中,微信公眾號的普遍性已經是達到90%以上,如何做好一個微信公眾號對於一個組織來說是非常重要的。因為公眾號起到的作用是【宣傳信息】,如何讓一些商家想讓用戶了解的信息及時傳達或者讓用