close

如何用Excel巧轉工資條:


  Excel具有強大的數據處理和打印輸出功能,並且易學易用,是廣大用戶喜歡使用的電子表格處理軟件。現在一些單位的財會人員喜歡用Excel打印本單位的職工工資總表與工資條,但在Excel中要將工資總表(如表1)手工地轉換為工資條(如表2)則是一件比較煩瑣的事,下面是我編寫的一個Excel宏,運行這個宏就可將編輯好瞭的工資總表很方便地轉換為工資條打印輸出。



  在Excel中新建一個文件,將其命名為“工資表與工資條”,在工作表“sheet1”中輸入並編輯好本單位職工工資總表(如表1所示)後,點擊“工具”菜單→“宏”→“宏…”→輸入宏名“生成工資條”→創建,輸入如下的宏的各行文本,輸入完成後保存該宏。將工作表“sheet1”復制為另一個工作表“sheet2”中,使“sheet2”成為當前工作表,執行剛才創建的宏,即可很快將表1所示的工資表轉換為表2所示的工資條。



 







 


  宏的內容如下:



Sub 生成工資條()



Cells.Select



'選擇整個表去掉表格線



Range("F1").Activate



Selection.Borders(xlDiagonalDown).Line



Style = xlNone



Selection.Borders(xlDiagonalUp).LineStyle = xlNone



Selection.Borders(xlEdgeLeft).LineStyle = xlNone



Selection.Borders(xlEdgeTop).LineStyle = xlNone



Selection.Borders(xlEdgeBottom).LineStyle = xlNone



Selection.Borders(xlEdgeRight).LineStyle = xlNone



Selection.Borders(xlInsideVertical).LineStyle = xlNone



Selection.Borders(xlInsideHorizontal).LineStyle = xlNone



Rows("2:2").Select



'選擇第2行



Selection.Insert Shift:=xlDown



'在第2行前插入一行,保持第2行



為選中狀態



num=150



'總人數×3,如工資表中有100人則



為100×3即num=300



col=14



'工資表的欄數,如工資表有17欄則



'col=17



num1 = 4



Do While num1 <= num



'循環插入空行



Range(Cells(num1, 1), Cells(num1, col)).Select



'選中第num1行的第1列到第col列



Selection.Insert Shift:=xlDown



Selection.Insert Shift:=xlDown



num1 = num1 + 3



Loop



Range(Cells(1, 1), Cells(1, col)).Select



Application.CutCopyMode = False



'剪切復制模式無效



Selection.Copy



'復制選擇區域



Range("A2").Select



'選擇A2單元格



ActiveSheet.Paste



'從A2單元格起粘貼內容



num2 = 5



Do While num2 <= num



'循環插入標題行



Range(Cells(1, 1), Cells(1, col)).Select



Application.CutCopyMode = False



Selection.Copy



Cells(num2, 1).Select



ActiveSheet.Paste



num2 = num2 + 3



Loop



Range(Cells(2, 1), Cells(3, col)).Select



Application.CutCopyMode = False



Selection.Borders(xlDiagonalDown).LineStyle



= xlNone



'定義表格邊框線、內線樣式



Selection.Borders(xlDiagonalUp).LineStyle = xlNone



With Selection.Borders(xlEdgeLeft)



.LineStyle = xlDouble



.Weight = xlThick



.ColorIndex = xlAutomatic



End With



With Selection.Borders(xlEdgeTop)



.LineStyle = xlDouble



.Weight = xlThick



.ColorIndex = xlAutomatic



End With



With Selection.Borders(xlEdgeBottom)



.LineStyle = xlDouble



.Weight = xlThick



.ColorIndex = xlAutomatic



End With



With Selection.Borders(xlEdgeRight)



.LineStyle = xlDouble



.Weight = xlThick



.ColorIndex = xlAutomatic



End With



With Selection.Borders(xlInsideVertical)



.LineStyle = xlDash



.Weight = xlThin



.ColorInde



arrow
arrow
    全站熱搜

    itest8 發表在 痞客邦 留言(0) 人氣()