Excel按量分配太複雜!關鍵資料不便共享!用VBA拆分為獨立工作薄

前景提要

隨著時代的不斷髮展,現在各行各業都非常強調團隊合作,協同作業,提高生產效率和質量,我們平時進行資料處理,資料校對的過程中也需要這樣的團隊合作,雖然科技在不斷的發展進步,但是有時候資料的錄入受限於場景等因素,還是需要手工操作的,手工錄入就不可避免的涉及輸入錯誤的情況,所以二次的資料核對是非常重要的,但是有時候資料非常的龐大,依靠個人去完成資料核對是非常慢的,但是一些資料又不便於共享出來,那這個時候如何實現團隊效益呢?

場景模擬

這裡我們依然借用我們上節的案例

Excel按量分配太複雜!關鍵資料不便共享!用VBA拆分為獨立工作薄

這是我們的工作資料,裡面記載著所有銷售人員上月的銷售業績,這個時候財務再核對的時候,覺得有必要在進行核對一次,因為這些資料都是手工錄入的,但是發現,僅僅依靠自己想要短時間核對完資料是非常的困難的,而這種關鍵性的資料又不能放到公司共享讓銷售員自行核對,所以只能自己幾個管理層級的同事來幫忙核對,但是總表只有一個,大家公用一個表很容易亂,如果能夠按量拆分成獨立工作薄,一個人完成文件在彙總就非常方便了

程式碼區

來看看這樣的場景該如何用程式碼來實現

Sub chai()

Dim rng As Range, sth As Worksheet, BookN As Workbook, pathn$

pathn = ActiveWorkbook。Path

Set sth = ActiveSheet

Set rng = Application。InputBox(“請選擇表頭區域”, “表頭區域的確定”, , , , , , 8)

TitleR = rng。Rows。Count

TitleC = rng。Column

TitleColNum = rng。Columns。Count

num = InputBox(“請輸入間隔拆分的行數”)

l = ActiveSheet。Cells(Rows。Count, TitleR)。End(xlUp)。Row

CountR = l - TitleR

For i = TitleR + 1 To l Step num

k = k + 1

Workbooks。Add

Set BookN = ActiveWorkbook

rng。Copy BookN。Worksheets(1)。Cells(1, 1)

sth。Activate

Range(Cells(i, TitleC), Cells(i + num - 1, TitleColNum-TitleR+1))。Copy BookN。Worksheets(1)。Cells(TitleR + 1, 1)

BookN。SaveAs pathn & “\” & “第” & k & “次拆分”

BookN。Close False

Next i

End Sub

看看程式碼的流程

首先依然是需要我們選擇指定的表頭範圍,在進行Excel資料處理的過程中,表頭是非常重要的,因為大家總是喜歡設定各種不同的表頭,雖然看起來很好看,但是等到了資料處理,資料分析的時候,表頭反而成為了硬傷

Excel按量分配太複雜!關鍵資料不便共享!用VBA拆分為獨立工作薄

然後輸入我們要拆分的行數,這裡可以隨意輸入,比方說你有100個數據,你有4個人可以協助你,那就是按照25行進行拆分,當然你可以任性,隨意輸入一個數據20,都可以,不影響結果的,這裡我隨機輸入15

Excel按量分配太複雜!關鍵資料不便共享!用VBA拆分為獨立工作薄

看看結果怎麼樣

Excel按量分配太複雜!關鍵資料不便共享!用VBA拆分為獨立工作薄

拆分完畢,我們來抽檢下,因為15肯定不是平分的,我們直接看最後一個工作薄

Excel按量分配太複雜!關鍵資料不便共享!用VBA拆分為獨立工作薄

資料非常完美,就算是最後一個不夠15個數據,也將剩餘的資料全部生成了一個獨立工作薄

程式碼解析

實現了需求之後,我們來看看程式碼

Set rng = Application。InputBox(“請選擇表頭區域”, “表頭區域的確定”, , , , , , 8)

TitleR = rng。Rows。Count

TitleC = rng。Column

TitleColNum = rng。Columns。Count

這一段程式碼就是幫助我們實現工作表表頭區域的獲取的,同時其中的inputbox函式,也讓我們透過自由靈活的輸入,和程式之間形成了互動,讓整個程式更加的靈活

num = InputBox(“請輸入間隔拆分的行數”)

l = ActiveSheet。Cells(Rows。Count, TitleR)。End(xlUp)。Row

有了上面的兩段程式碼的輔助之後,我們就可以開始主程式了。

和昨天的方式一樣,這裡我們迴圈的方式依然是跳躍式的迴圈,按照拆分的行數來實現迴圈遍歷

Excel按量分配太複雜!關鍵資料不便共享!用VBA拆分為獨立工作薄

每迴圈一次就要新建一個工作薄,然後將資料裝入新的工作薄中,並且儲存複製重新命名

Workbooks。Add‘工作薄的建立

Set BookN = ActiveWorkbook

rng。Copy BookN。Worksheets(1)。Cells(1, 1)’複製表頭

工作薄的建立就非常的簡單了,在進行工作薄的建立之後,我們順手將表頭複製過來,這樣使得新建的工作薄更加完整

表頭是哪裡?就是我們前面第一個窗體中選擇的區域,我們將它複製給了變數rng

Excel按量分配太複雜!關鍵資料不便共享!用VBA拆分為獨立工作薄

然後我們就需要填充資料區域了。

資料區的構造還是和昨天一樣的,不太清楚的話,可以看看昨天文章的分析

非常規路線的工作表拆分之按指定行數拆分工作表

或者是直接看下面的這個圖進行理解

Excel按量分配太複雜!關鍵資料不便共享!用VBA拆分為獨立工作薄

現在就可以將這些獨立的工作薄分發出去,一人負責一部分,核對完了之後,有問題的再發給財務進行修改就可以了,大家都可以在自己的工作崗位進行操作,同時作業,效率提升很多。