- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
本帖最後由 GBKEE 於 2010-10-18 09:01 編輯
回復 1# dechiuan999
問題在Private Sub CommandButton5_Click()
With Range("員工基本資料")
mStr1a = TextBox1.Text
Set mRng1b = Range("員工基本資料").Columns(1).Find(what:=mStr1a, lookat:=xlWhole, searchorder:=xlByRows)
If Not mRng1b Is Nothing Then
MsgBox "你輸入的員工編號重覆" & vbCrLf & vbCrLf & "請重新輸入員工編號"
Exit Sub
End If
mRow1 = Range("員工基本資料").Rows.Count '計算出定義名稱的列數
If TypeName(Selection) = "Range" Then
.Cells(1).End(xlDown).Offset(1).Select '請加入這一段
If Intersect(Selection, Range("員工基本資料").End(xlDown).Offset(1)) Is Nothing Then
'MsgBox "請先選取輸入資料指定位置"
Exit Sub
Else
''''''''''''''''''''''''''''''''''''''''''''''''''''''
CommandButton5_Click() 新增資料的防呆措施 少了姓名的防呆
防呆之後 新增資料直接用 不用理會selection的事 如下- Private Sub CommandButton5_Click()
- Dim Sh As Worksheet, Rng As Range
- Set Sh = Worksheets("員工基本資料")
- Set Rng = Sh.Range("A" & Rows.Count).End(xlUp).Offset(1)
- With TextBox1
- If Application.CountIf(Sh.Columns(1), .Text) > 0 Then
- MsgBox "你輸入的員工編號重覆" & vbCrLf & vbCrLf & "請重新輸入員工編號"
- Exit Sub
- ElseIf Len(.Text) = 5 Then
- If IsNumeric(.Text) Then Rng.Cells(1, 1).NumberFormatLocal = "@"
- Else
- MsgBox "員工編號為五個字元"
- Exit Sub
- End If
- End With
- With TextBox2
- If Application.CountIf(Sh.Columns(2), .Text) > 0 Then
- MsgBox "你輸入的 姓名 重覆" & vbCrLf & vbCrLf & "請重新輸入員工 姓名"
- Exit Sub
- ElseIf Len(.Text) = 0 Then
- MsgBox "你沒有 輸入姓名 " & vbCrLf & vbCrLf & "請重新輸入員工 姓名"
- End If
- End With
- With TextBox3 '身份證宇元為 10 個宇元
- If Application.CountIf(Sh.Columns(3), .Text) > 0 Then
- MsgBox "身份證宇號 重複" & vbCrLf & vbCrLf & "請重新輸入 身份證宇號 "
- Exit Sub
- ElseIf Len(.Text) = 10 Then
- If Not IsNumeric(.Text) Then Rng.Cells(1, 3).NumberFormatLocal = "@"
- Else
- MsgBox "身份證宇元為 10 個宇元"
- Exit Sub
- End If
- End With
- With TextBox5 ''立帳局號元為 7 個宇元
- If Len(.Text) = 7 Then
- If IsNumeric(.Text) Then Range("員工基本資料").Cells(mRow1a, 5).NumberFormatLocal = "@"
- Else
- MsgBox "立帳局號元為 7 個宇元"
- Exit Sub
- End If
- End With
- With TextBox6 '存簿帳號字元為 7 個宇元
- If Len(.Text) = 7 Then
- If IsNumeric(.Text) Then Range("員工基本資料").Cells(mRow1a, 6).NumberFormatLocal = "@"
- Else
- MsgBox "存簿帳號字元為 7 個宇元"
- Exit Sub
- End If
- End With
- With Rng
- .Cells(1, 1) = TextBox1.Value
- .Cells(1, 2) = TextBox2.Value
- .Cells(1, 3) = TextBox3.Value
- .Cells(1, 4) = TextBox4.Value
- .Cells(1, 5) = TextBox5.Value
- .Cells(1, 6) = TextBox6.Value
- .Cells(1, 7) = TextBox7.Value
- .Cells(1, 9) = TextBox8.Value
- If OptionButton1.Value = True Then
- .Cells(1, 8) = "在職"
- ElseIf OptionButton2.Value = True Then
- .Cells(mRow1a, 8) = "離職"
- End If
- End With
- MsgBox "資料新增 完畢"
- Set Sh = Nothing
- Set Rng = Nothing
- End Sub
複製代碼 |
|