作者:iamlaosong 用VBA對(duì)Excel文件進(jìn)行處理的時(shí)候,,keyword段的列號(hào)編程時(shí)往往是不知道的,。須要通過(guò)參數(shù)設(shè)定才干知道,,因此,。我們編程的時(shí)候,就不能用這種語(yǔ)句取有效行數(shù): lineno = [B65536].End(xlUp).Row '從下至上找有效行數(shù) 上述語(yǔ)句中的列名“B”假設(shè)是變量。能夠用字符串連接的方式實(shí)現(xiàn),,即: pos_ems = 'C' 假設(shè)給的是列號(hào),,則用下列語(yǔ)句: pos_ems = 3 假設(shè)該列全部須要處理的單元格都有值。也能夠用下列語(yǔ)句: lineno = [B1].End(xlDown).Row '從上至下找有效行數(shù) 或者
ineno = Cells(pos_fst, pos_ems).End(xlDown).Row語(yǔ)句中的pos_fst是有效數(shù)據(jù)的起始行,,這個(gè)語(yǔ)句的優(yōu)點(diǎn)是不用管工作表最大行數(shù)是65536還是1048576,,缺點(diǎn)是假設(shè)有效數(shù)據(jù)僅僅有一行或者該列有空值的話(huà)。將取不到有效行數(shù),。這也是這樣的方法不經(jīng)常使用的主要原因,。
上述語(yǔ)句中的變量pos_ems能夠讀取單元格的值,以便面對(duì)不同文件時(shí)隨時(shí)設(shè)置: pos_fst = Cells(2, 7) pos_ems = Cells(3, 7) pos_sav = Cells(4, 7) lineno = [B65536].End(xlUp).Row '行數(shù),,文件數(shù)量 For unit_num = 5 To lineno '文件循環(huán) datfile = Cells(unit_num, 2) '文件名 datFullName = ThisWorkbook.Path & '\' & datfile If Dir(datFullName, vbNormal) <> vbNullString Then Workbooks.Open Filename:=datFullName '打開(kāi)訂單文件 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 '數(shù)據(jù)文件不存在,。', vbOKOnly, 'iamlaosong' Exit Sub End If。,。 ,。 Excel的版本號(hào)不同,。最大行數(shù)和列數(shù)不同,。2003版最大行數(shù)是65536行,最大列數(shù)是256列(最后一列IV),。Excel2007及以后的版本號(hào)最大行數(shù)是1048576行,,最大列數(shù)是16384列(最后一列XFD)。
打開(kāi)一個(gè)空白新建EXCEL表格,,按CTRL+下箭頭,,能夠查看到最大行數(shù);按CTRL+右箭頭,,能夠查看到最大列標(biāo)(若想顯示列數(shù),。可在最右一列的某單元格中輸入=column()回車(chē),,出現(xiàn)數(shù)字就是最大列數(shù)),。
|
|
來(lái)自: Excel實(shí)用知識(shí) > 《VBA與EXCEL》