VBA簡單入門29:數(shù)組的數(shù)據(jù)來源(工作表、Array、Split)上一章介紹了數(shù)據(jù)是如何寫入數(shù)組的。這一章,介紹數(shù)組的數(shù)據(jù)如何輸出到工作表。 1、 數(shù)組數(shù)據(jù)輸出到工作表1.1、 一維數(shù)組輸出數(shù)據(jù)到工作表 數(shù)組中的數(shù)據(jù)輸出到工作表,常常使用Range對象的Resize屬性。 通過Resize建造一個大小和數(shù)組一樣的單元格區(qū)域來寫入數(shù)組數(shù)據(jù)。 其中,Resize的行列兩參數(shù)往往使用變量。 注意1:Array數(shù)組的下標0,上標3,它有4個元素。這種情況使用數(shù)組的上標來確定Resize大小,需注意使用Ubound() 1,否則會缺少數(shù)據(jù)。 注意2:一維數(shù)組數(shù)據(jù)輸出到工作表的一列,往往需要轉(zhuǎn)置函數(shù)Transpose。 1.2、 二維數(shù)組輸出到工作表 我們知道,數(shù)據(jù)來自于工作表的數(shù)組都是二維數(shù)組,要放回工作表,就相當于同根同源了。(不改變維度數(shù)) 所以,二維數(shù)組天生就和工作表八字契合。 使用Resize(一維上標,二維上標)建造和二維數(shù)組大小適當?shù)膯卧駞^(qū)域?qū)懭肫鋽?shù)據(jù)。 2、 數(shù)組的轉(zhuǎn)置:數(shù)組的轉(zhuǎn)置使用Transpose函數(shù)。2.1、一維數(shù)組轉(zhuǎn)二維數(shù)組 2.2、 二維數(shù)組轉(zhuǎn)一維數(shù)組 2.3、 二維數(shù)組使用Transpose,相當于工作表的轉(zhuǎn)置操作,一維和二維維度互換。 2.4 當然,一維數(shù)組和二維數(shù)組之間的相互轉(zhuǎn)置或數(shù)據(jù)傳遞,依然可以使用循環(huán)。 3、 例子:A列填充1-66666,使用數(shù)組和使用單元格效率比較。3.1、使用單元格方法 3.2、使用數(shù)組方法 同樣配置的電腦,使用數(shù)組的效率比單元格要高得多。 4、 擴展內(nèi)容:Transpose函數(shù)的限制Transpose函數(shù)在數(shù)據(jù)超過65536條時會轉(zhuǎn)置失敗。 但我在Excel2016當中測試,它早早就發(fā)生了錯誤(不知道為什么……) 若要避免發(fā)生此問題,方法就是不使用Transpose,不用就沒有問題了。 將數(shù)組arr設置成二維數(shù)組,再輸出到工作表。 |
|