如何用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
留言列表