前景提要
今天開始我們進(jìn)入第5序列的學(xué)習(xí)黔夭,本序列我們將要學(xué)習(xí)的時候關(guān)于工作薄的相關(guān)知識和各種操作宰缤,相信很多的童鞋都已經(jīng)迫不及待的想要學(xué)習(xí)這些方面的額知識了琐鲁,因為在很早的時候就有童鞋私信我說想要接觸這方面的知識菠齿,小編在完成了前面4個序列差不多49篇的基礎(chǔ)知識的分享之后志膀,也是成功的來到了第5序列熙宇,今天開始我們一起進(jìn)入VBA和工作薄的世界。
這里我們先來說下工作薄和工作表之間的區(qū)別溉浙,很多人在開始學(xué)習(xí)的時候都會將這兩個概念混淆烫止,工作薄在VBA是workbook,而工作表在VBA是worksheet戳稽,再來個圖看看應(yīng)該會更加詳細(xì)一點馆蠕。
最頂層的窗體是workbook,而workbook里面的每一個sheet就是worksheet惊奇,按照窗體界面的說法荆几,叫做父子關(guān)系,workbook是父類赊时,worksheet是子類吨铸,這一點大家再學(xué)習(xí)之前一定要弄清楚這兩個概念,否則在后面的操作中出現(xiàn)張冠李戴就不好了 祖秒。
場景模擬
今天我們主要分享的是如何通過VBA來進(jìn)行批量工作薄的創(chuàng)建诞吱,這個操作在之后的學(xué)習(xí) 中會經(jīng)常用到,今天我們模擬的場景是竭缝,假設(shè)現(xiàn)在我們有公司每個銷售員的銷售記錄房维,我們要分開一個一個工作薄,方便在結(jié)算業(yè)績的時候一起發(fā)送抬纸,也方便員工核對自己的業(yè)績咙俩,不過每個公司的銷售員有很多,我們?nèi)绻粋€個的手工創(chuàng)建再復(fù)制粘貼的話湿故,會非常的麻煩阿趁,這時候輪到VBA大展身手了
方法分析
我們在手工創(chuàng)建工作薄的時候,我們需要知道每個員工的明細(xì)坛猪,每個員工的名字就是工作表的名字脖阵,這個非常的簡單,然后我們有了員工的姓名墅茉,如何通過VBA創(chuàng)建工作薄呢命黔?這里需要運用到一個新知識呜呐,workbooks.add這就是新增工作薄的方法,當(dāng)然新增了工作薄之后悍募,我們肯定還要將工作薄的名字改成員工的名字蘑辑,那么如何改呢?workbooks.SaveAs("name"),看起來非常的簡單坠宴,好了以躯,我們上代碼吧
代碼區(qū)
假設(shè)我們現(xiàn)在有這樣的一份員工銷售記錄表,我們現(xiàn)在需要將他們通過A列的員工姓名來創(chuàng)建相應(yīng)的獨立工作薄啄踊,來看看代碼
Sub 合并()
Dim arr, BookName$, arr1, book As Workbook, pathn
pathn = ThisWorkbook.Path
arr = Range(Cells(1, 1), Cells(1, "e"))
For i = 2 To 20
BookName = Cells(i, 1)
arr1 = Range(Cells(i, 1), Cells(i, "e"))
Workbooks.Add
Set book = ActiveWorkbook
book.Worksheets(1).Cells(1, 1).Resize(1, UBound(arr, 2)) = arr
book.Worksheets(1).Cells(2, 1).Resize(1, UBound(arr1, 2)) = arr1
book.SaveAs (pathn & "\" & BookName)
book.Close
Next i
End Sub
看看外面的效果
再看看里面的效果
有沒有一種自我感覺良好的感覺忧设,哈哈
代碼分析
pathn = ThisWorkbook.Path
此處的目的是獲得當(dāng)前文件夾的位置,即路徑
然后開始遍歷颠通,這里我們將單元格內(nèi)的員工姓名復(fù)制給bookName這個變量址晕,將標(biāo)題列賦值給arr這個數(shù)組,將對應(yīng)的那一列的內(nèi)容賦值給arr1這個數(shù)組顿锰,然后進(jìn)入今天的重點谨垃,創(chuàng)建新的工作薄
Workbooks.Add
非常的簡單,創(chuàng)建了工作薄之后硼控,我們用一個變量來代表這個我們剛剛創(chuàng)建的工作薄刘陶,其實也不可以不用,不過為了書寫的方便牢撼,一般都會這樣的匙隔,
book.Worksheets(1).Cells(1, 1).Resize(1, UBound(arr, 2)) = arr
book.Worksheets(1).Cells(2, 1).Resize(1, UBound(arr1, 2)) = arr1
這兩句代碼用到了數(shù)組的相關(guān)知識和單元格的知識,這些我們后面會分享到熏版,這里大家先知道下纷责,這兩句的作用將我們的標(biāo)題和對應(yīng)的數(shù)據(jù)全部放到我們新建的工作薄中。
最后我們就需要重命名工作薄了撼短,利用工作薄的另存為功能來實現(xiàn)再膳。
book.SaveAs (pathn & "\" & BookName)
這里需要注意不能直接寫B(tài)ookName,路徑一定要寫完成的路徑曲横,套路就是用我們之前 得到的pathn這個路徑喂柒,加上我們要命名的員工姓名就可以了。
最后是工作薄的關(guān)閉禾嫉。