- 帖子
- 522
- 主題
- 36
- 精華
- 1
- 積分
- 603
- 點名
- 0
- 作業系統
- win xp sp3
- 軟體版本
- Office 2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2012-12-13
- 最後登錄
- 2021-7-11
|
7#
發表於 2014-4-15 17:39
| 只看該作者
回復 6# s7659109
回覆 請先按 回覆, 再回覆,
例如你希望 6F 給你回覆, 則在 6F 下面的【回覆】按鈕上點一下,
這樣 6F 的人就會接到系統的通知, 如此才不會耽誤時間,
否則收不到你的 回覆, 不知你有何新問題. 謝謝!!
1. 回覆上一個問題:
原想法 將 103年 的欄位刪除 有誤, 如此一來,
所有的 級數 均應重新更新, 工程較大,
較簡單的方法是:
將 104年 的人員降級為 103年 的級數, 則其他人員的級數均不用更新.
2. 回覆目前問題:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim j, lastRow, 級數1, 最高級 As Integer
Dim 獎金1 As Long
Dim rng As Range
Dim 類別1, 學歷1 As String
lastRow = [J65536].End(xlUp).Row '取得J欄最下一行
Set rng = [J3].Resize(lastRow, 1)
If Not Intersect(Target, rng) Is Nothing Then
Target.Offset(0, 1).Resize(1, 20).Clear '清除填入區
學歷1 = Target.Offset(0, -1)
級數1 = --Target.Value
最高級 = Application.VLookup(學歷1, Range("C3:E9"), 2, 0)
獎金1 = Application.VLookup(學歷1, Range("C3:E9"), 3, 0)
For j = 1 To 9
If j + 級數1 - 2 < 最高級 Then
'Target.Offset(0, j * 2) = 獎金1 / 2
'Cells(級數1 + j, 2) 就是當年薪水
Target.Offset(0, j * 2) = Cells(級數1 + j, 2) * 2
Target.Offset(0, j * 2 - 1) = Cells(級數1 + j, 2)
Target.Offset(0, j * 2 - 1).Resize(1, 2).Interior.ColorIndex = xlNone
Else
'Target.Offset(0, j * 2) = 獎金1
Target.Offset(0, j * 2) = Cells(最高級 + 1, 2) * 5
Target.Offset(0, j * 2 - 1) = Cells(最高級 + 1, 2)
Target.Offset(0, j * 2 - 1).Resize(1, 2).Interior.ColorIndex = 38
End If
Next
End If
End Sub
不過目前公定有這麼好康嗎? |
|