|
▼ちーすけ さん:
> Range("B") = FoundCell.Next '←ここの部分
>ここの部分でやりたいことは、idを入力するとセルのB列に名前が表示されるようにし、
> 次にidが入力されたら下の行に名前を表示させるようにしたいです。
> 名前の表示自体は、T列にidを書いておき、隣のセルを読み込ませて表示させるようにしました。
ごめんなさい。↑説明してもらってもまだ分からないのですが?
TextBox の id がA列にあるか、まだかで、場合分けし、
idがまだ未記入の時(countifが 0 を返すとき) だけ
T列を検索して id を見つけ、U列の対応する「名前」を取得。
「名前」をB列に書き込み、C列に 時刻を記入する。
という処理順でいいような気がするのですが?
Private Sub CommandButton1_Click()
Dim FoundCell As Range
Dim rngID As Range
Dim Col As Integer
Dim id As String
'TextBox1 に入力された名前を変数idに代入
id = TextBox1.Value
With Worksheets("Sheet1")
'A列に このIDが記載済みか新規か調べる
'新規IDのばあい
If WorksheetFunction.CountIf(.Range("A:A"), id) = 0 Then
'A列最終行の取得
Set rngID = .Range("A" & .Rows.Count).End(xlUp).Offset(1)
rngID.Value = id '番号出力
'idに対応する名前をB列に表示
Set FoundCell = Range("T:T").Find(id, , xlFormulas, xlWhole)
If FoundCell Is Nothing Then
MsgBox "番号がありません"
Exit Sub
End If
rngID.Offset(, 1).Value = FoundCell.Offset(, 1).Value '名前出力
Col = 3 'C列
Else '記載済みのばあい
'退勤処理
Set rngID = .Range("A:A").Find(id)
Col = 4 'D列
End If
End With
'時刻出力
With rngID.Item(1, Col)
.Value = Now() '時刻出力
.NumberFormat = "yy/mm/dd hh:mm" 'セルの書式設定
End With
TextBox1.Value = ""
TextBox1.Select
MsgBox "完了"
End Sub
問題あったら、レス下さい。
|
|