【文章內(nèi)容簡介】
c = 13 Then xj = 443 If c = 14 Then xj = 471 If c = 15 And c = 16 Then xj = 499 If c = 17 And c = 18 Then xj = 527 If c = 19 Then xj = 555 If c = 20 And c = 21 Then xj = 583 If c = 22 And c = 23 Then xj = 613 If c = 24 Then xj = 643 If c = 25 And c = 26 Then xj = 673 If c = 27 And c = 28 Then xj = 703 If c = 29 Then xj = 735 If c = 30 And c = 31 Then xj = 767 If c = 32 And c = 33 Then xj = 799 If c = 34 Then xj = 834 If c = 35 And c = 36 Then xj = 869 If c = 37 And c = 38 Then xj = 904 If c = 39 Then xj = 944 If c = 40 And c = 41 Then xj = 984 If c = 42 And c = 43 Then xj = 1024 ElseIf a = 處級正職 And b = 4 And b = 6 Then If c = 14 Then xj = 499 If c = 15 And c = 16 Then xj = 527 ?? ElseIf a = 處級副職 And b = 3 Then If c = 11 Then xj = 341 If c = 12 And c = 13 Then xj = 365 ?? ElseIf a = 正高 And b = 2 Then If c = 16 Then xj = 555 If c = 17 And c = 18 Then xj = 583 ?? Else: End If: End Function 代碼說明: 以上代碼 是一個自定義函數(shù),函數(shù)名 xj, a、 b 和 c 都 為變量,分別 為 套改三要素中的職務(wù)、任職年限和套改年限,如職務(wù)為 處 級,任職年限為 3 年,套改年限為 18 年的人員,其薪級工資為 527 元 。 上述代碼輸入完成后退出并保存,在 AA8 單元格中輸入“ =xj (w8,n8,i8)”, 即 可在 AA8單元格中得到此人的薪級工資,向下拖動此公式可得到其 他人員的薪級工資。 ②崗位為工人的薪級工資的自定義函數(shù)部分代碼如下: Function grxj(a As String, b, c) As Single grxj = 0 If a = 技師 And b = 2 Then If c = 20 Then grxj = 340 If c = 21 And c = 22 Then grxj = 363 If c = 23 And c = 24 Then grxj = 386 15 If c = 25 Then grxj = 409 If c = 26 And c = 27 Then grxj = 432 If c = 28 And c = 29 Then grxj = 455 If c = 30 Then grxj = 478 If c = 31 And c = 32 Then grxj = 504 If c = 33 And c = 34 Then grxj = 530 If c = 35 Then grxj = 556 If c = 36 And c = 37 Then grxj = 585 If c = 38 And c = 39 Then grxj = 614 If c = 40 Then grxj = 643 If c = 41 Then grxj = 675 ElseIf a = 高級工 And b = 3 Then If c = 15 Then grxj = 232 If c = 16 And c = 17 Then grxj = 248 ?? Else: End If: End Function 代碼說明 同上,需要注意的是此處函數(shù)名為 grxj。 上述兩個自定義函數(shù)創(chuàng)建后 ,由于都要在 AA 列中處理,這就要根據(jù)崗位名稱是管理、專技和工人進行判斷,并插入相應(yīng)的函數(shù), 另外,對于現(xiàn)任職務(wù)取得時間較短,低一職務(wù)任職時間較長的人員,其薪級工資要按低職進行套改,因此需 要對兩個薪級工資進行比較,這就要在 工作簿的 VBE 窗口中插入一個模塊 11,其完整代碼如下: Private Sub 生成新工資標準 () Row = Worksheets(事業(yè) ).[a65536].End(xlUp).Row 39。行數(shù) = False 39。關(guān)閉屏幕更新 For i = 8 To Row a = Mid(Range(af amp。 i), 1, 2) 39。獲取 AF 列 I 行單元格前兩個字符 b = Mid(Range(af amp。 i), 3) 39。獲取 AF 列 I 行單元格兩個字符后的字符 If a = 低職 Then 39。如果前兩字為 低職 ,那么就取消 低職 兩字 Range(af amp。 i) = b: End If: Next i For i = 8 To Row 39。從 8 行開始循環(huán) 39。按現(xiàn)職務(wù)套改和按低一職套改的薪級工資 a = xj(Range(w amp。 i), Range(n amp。 i), Range(I amp。 i)) b = xj(Range(o amp。 i), Range(q amp。 i), Range(I amp。 i)) If Range(j amp。 i) = 管理 Or Range(j amp。 i) = 專技 And a = b Then Range(aa amp。 i) = a: Range(af amp。 i). = 2 ElseIf Range(j amp。 i) = 管理 Or Range(j amp。 i) = 專技 And a b Then Range(aa amp。 i) = b: Range(af amp。 i). = 34 39。按低職套改的人 員 ,在備注欄中加入 低職 兩字 Range(af amp。 i) = 低職 amp。 Chr(10) amp。 Range(af amp。 i) End If: Next i: For i = 8 To Row c = grxj(Range(w amp。 i), Range(n amp。 i), Range(I amp。 i)) d = grxj(Range(o amp。 i), Range(q amp。 i), Range(I amp。 i)) If Range(j amp。 i) = 工人 And c =d Then 16 Range(aa amp。 i) = c: Range(af amp。 i). = 2 39。ClearContents ElseIf Range(j amp。 i) = 工人 And c d Then Range(aa amp。 i) = d: Range(af amp。 i). = 34 Range(af amp。 i) = 低職 amp。 Chr(10) amp。 Range(af amp。 i) End If: Next i: For i = 8 To Row 39。取得 X、 Y、 Z 列的值 e = gz(Range(w amp。 i)): f = dj(Range(w amp。 i)) g = js(Range(aa amp。 i)): Range(y amp。 i) = e Range(x amp。 i) = f: Range(z amp。 i) = g Next i: = True End Sub 代碼說明: 以上代碼 是 先對 AF 列單元格內(nèi)容進行判斷 , 如果有“低職”兩字的,就刪除“低職”兩字,然后分別用現(xiàn)任職務(wù)和低一職務(wù)進行套改, 如果用現(xiàn)任職務(wù)套改的薪級工資大于低一職務(wù)的,就按現(xiàn)職套改,反之,則按低一職務(wù)套改, 并在下列單元格中添加“在職”兩字, 最后用循環(huán)語句取得 X、 Y、 Z 列的值 ,免去手工 輸入在 單元格 中輸入 公式 。 上述代碼輸入完成后退出并保存,然后在 【 工具 】 → 【宏】菜單中運行“生成新工資標準”宏,即可實現(xiàn)單元格數(shù)據(jù)的自動輸出。 2021 年 3 月 15 日 通訊地址:浙江省諸暨市濱江中路 19號會計核算中心 許國 辦公室電話 05757375026 郵政編碼 311800 Email: 網(wǎng)址: 17 最新 EXCEL 人事工資管理系統(tǒng) —— 設(shè)計在職人員工改名冊表(三) 諸暨市教育局核算中心 許 國 諸暨市教育局 鄭文建 ( 5) V列、 AC 列、 AD 列單元格的數(shù)據(jù)處理 V列、 AC 列為合計列, AD 列為月增資額列,在 V8 單元格中輸入“ =S8+T8+U8”,在AC 單元格中輸入“ =Y8+AA8+AB8”,在 AD 單元格中輸入“ =AC8V8” ,然后 向下拖動生成此三列的公式,即可得到此三列的數(shù)值,但用手工處理公式比較麻煩,而且隨著人員增加,公式也需要經(jīng)常拖動 ,為了能夠自動在單元格中輸入公式 ,我們 需 在 工作簿的 VBE 窗口中插入一個模塊 12,完整代碼如下: Private Sub 自動填充公式 () Dim Irow As Integer Irow = Worksheets(事業(yè) ).[a65536].End(xlUp).Row 39。取得行數(shù) = False Range(v8).Activate 39。激活 L5 單元格 = =s8+t8+u8 39。L5 單元格中輸入公式 39。自動填充上述公式到該區(qū)域 Destination:=Range(Cells(8, v), Cells(Irow, v)), _ Type:=xlFillDefault Range(AC8).Activate 39。激活 L5 單元格 = =Y8+AA8+AB8 39。L5 單元格中 輸入公式 Destination:=Range(Cells(8, AC), Cells(Irow, AC)), _ Type:=xlFillDefault Range(AD8).Activate 39。激活 L5 單元格 = =AC8V8 39。L5 單元格中輸入公式 Destination:=Range(Cells(8, AD), Cells(Irow, AD)), _ Type:=xlFillDefault End Sub 代碼說明: 以上代碼 是 先在 V AC AD8 單元格中建立公式,用自動填充語句向下填充公式 , 填充公式范圍為有數(shù)據(jù)的地方。 上述代碼輸入完成后退出并保存,然后在 【 工具 】 → 【宏】菜單中運行“ 自動填充公式 ”宏,即可 在 V 列、 AC 列和 AD 列 自動填充公式,并取得此三列 的 數(shù) 值。 ( 6)見習人員(即新分配人員)的崗位工資和薪級工資標準 由于見習人員的崗位工資和薪級工資標準是 有 特別規(guī)定的,既要按 學歷高低定級,又 有城區(qū)和非城區(qū)工作 之分 , 因此在要 AF 列(即備注)中注明“城區(qū)”和“非 城區(qū)”字樣,以便用 VBA 代碼識別, 在 工作簿的 VBE 窗口中插入一個模塊 13,輸入如下代碼: Private Sub 見習期工資 () 18 Dim Irow As Integer Irow = Worksheets(事業(yè) ).[a65536].End(xlUp).Row 39。取得行數(shù) = False For i = 8 To Irow 39。如果學歷為碩士 ,崗位為見習 ,并且在非城區(qū)工作 ,其崗位工資為 590 元 ,薪級工資為 215 元 If Range(d amp。 i) = 碩士 And Range(j amp。 i) = 見習 And Range(af amp。 i) = 非城區(qū) Then Range(Y amp。 i) = 590: Range(aa amp。 i) = 215 ElseIf Range(d amp。 i) = 研究生 And Range(j amp。 i) = 見習 And Range(af amp。 i) = 非城區(qū) Then Range(Y amp。 i) = 590: Range(aa amp。 i) = 181 ElseIf Range(d amp。 i) = 本科 And Range(j amp。 i) = 見習 And Range(af amp。 i) = 非城區(qū) Then Range(Y amp。 i) = 590: Range(aa amp。 i) = 151 ElseIf Range(d amp。 i) = 專科