王曉勇 冷居鄉(xiāng)
摘要:在企業(yè)薪酬管理工作中,由于三級單位SAP用戶權(quán)限被收回,二級單位薪酬管理人員需要從全公司工資明細(xì)表中將各基層單位明細(xì)表復(fù)制粘貼到一個新的以三級單位命名的工作簿中。這個過程重復(fù)性操作多,容易出錯并且效率低。本文利用VBA編程在處理工作表對象方面的優(yōu)勢,結(jié)合實際需求進行研究,實現(xiàn)了一鍵生成各基層單位工資明細(xì)表自動化。
關(guān)鍵詞:薪酬管理;VBA編程;工作表對象
隨著人力資源共享服務(wù)工作的推進,薪酬核算與發(fā)放業(yè)務(wù)程序發(fā)生了改變[1]。企業(yè)三級單位不再具有從SAP系統(tǒng)導(dǎo)出工資明細(xì)表的權(quán)限。為了確保各基層單位能夠?qū)べY明細(xì)表進行校對,企業(yè)二級單位薪酬管理人員需要從全公司工資明細(xì)表中將各基層單位明細(xì)表復(fù)制粘貼到一個新的以三級單位命名的工作簿中,然后下發(fā)給各基層單位。這個過程重復(fù)性操作多,容易出錯并且效率低。因此亟需找到一個簡單方法,能夠快速將全公司工資明細(xì)表規(guī)范準(zhǔn)確的拆分為各基層單位工資明細(xì)表,從而提高工作效率,降低工作量[2]。利用VBA編程的優(yōu)勢可以很好地解決這類數(shù)據(jù)不在同一個工作簿中的問題[3]。下面就來介紹如何運用VBA編程實現(xiàn)對全公司工資明細(xì)表的分解。
一、實現(xiàn)功能
利用Excel自帶的VBA編程功能,將全公司工資明細(xì)表以三級單位為分割線,快速、準(zhǔn)確地分解成不同的工作簿,每個新工作簿以相應(yīng)三級單位名稱命名,保持拆分后工作簿表頭和全公司工資明細(xì)工作表表頭一致。從而實現(xiàn)將全公司工資明細(xì)表分解成三級單位工資明細(xì)表自動化。
二、實現(xiàn)方法
利用VBA編程for循環(huán),遍歷全公司工資明細(xì)工作表。具體過程可分為三個步驟:
(1)清空sheet1工作表中全部內(nèi)容,將全公司工資明細(xì)表中表頭部分粘貼到sheet1工作表中;
(2)判斷三級單位數(shù)據(jù)所在區(qū)域的首行、尾行,將這部分區(qū)域的數(shù)據(jù)粘貼到sheet1工作表中表頭所在區(qū)域下一行的第一列位置;
(3)將sheet1工作表另存為D盤output文件夾目錄下以三級單位名稱命名的工作簿。
VBA代碼如下:
Sub 拆分全公司工資明細(xì)表( )
For i=9 To Sheets("全公司明細(xì)").Cells(Rows.Count,1).End (xlUp).Row
If Sheets("全公司明細(xì)").Cells(i,1)="小計"Then
Sheets("Sheet1").Select
Cells.Select
Selection.ClearContents
Selection.Delete Shift:=xlUp
Sheets("全公司明細(xì)").Rows("1:8").Copy
Sheets("Sheet1").Range("A1").Select
ActiveSheet.Paste
For k = i-1 To 9 Step-1
If Sheets("全公司明細(xì)").Cells(k,3)<> Sheets("全公司明細(xì)").Cells(k-1,3)Then
Exit For
End If
Next k
Sheets("全公司明細(xì)").Select
Range(Cells(k,1),Cells(i,100)).Copy
Sheets("Sheet1").Select
Cells(Sheets("Sheet1").Cells(Rows.Count,1).End(xlUp).Row + 1,1).Select
ActiveSheet.Paste
Sheets("Sheet1").Columns("C:C").EntireColumn.AutoFit
Sheets("sheet1").Copy
ActiveWorkbook.SaveAs Filename:="d:\output\" & Cells (9,3)&".xls",_
FileFormat:=xlNormal,Password:=" ",WriteRes Password:=" ",_
ReadOnlyRecommended:=False,CreateBackup:=False
ActiveWindow.Close
End If
Next i
End Sub
實際處理全公司工資明細(xì)表之前,還需要提前做一些簡單的準(zhǔn)備工作。在D盤新建output文件夾,在全公司工資明細(xì)工作表所在工作簿新建sheet1工作表。然后打開Visual Basic編輯器,右鍵插入模塊,將VBA代碼粘貼到新建模塊中,點擊運行就會一鍵生成若干三級單位工資明細(xì)表。
三、總結(jié)
如果采用常規(guī)方法手動復(fù)制粘貼各三級單位工資明細(xì),不僅會浪費大量時間來執(zhí)行重復(fù)性操作,而且容易出錯[4]。利用VBA編程的方法來分解全公司工資明細(xì)表不到一分鐘就可以完成,大大減少了三級單位SAP用戶權(quán)限取消后給二級單位薪酬管理人員帶來的工作量,提高了工作效率降低了出錯的概率。經(jīng)驗證,該方法簡單易學(xué),具有很強的適用性,并且同樣適用于生成各三級單位獎金明細(xì)表,目前已經(jīng)成功推廣應(yīng)用到各二級單位。綜上所述,VBA編程能夠提高薪酬管理工作效率,在薪酬管理工作中具有很強的應(yīng)用性。
參考文獻:
[1]王琛,段毅龍,喬峰,趙亞平,林芳.強化組織領(lǐng)導(dǎo),注重保障支持全力支持人力資源共享服務(wù)試點順利實施[J].石油組織人事,2019 (2):28-31.
[2]鄧文盛,何勇.VBA編程在調(diào)查問卷數(shù)據(jù)收集匯總的應(yīng)用[J].企業(yè)科技與發(fā)展,2019 (5):123-124.
[3]吉建英,周宏,王麗,袁成銘.VBA編程在計算機基礎(chǔ)考核閱卷中的應(yīng)用[J].科技經(jīng)濟導(dǎo)刊,2018 (26):29-31.
[4]陸錦鶴.利用VBA編程提高報表制作效率[J].科技前沿,2016 (4):152-153.