|
▼八家九僧陀 さん:
>1.Text社員ID.valueがsheet”前月分”のA列「社員ID」にあるかないかを判定して、無ければ「該当者のデータがありません。」と表示する。有れば、C列「前月分支給額」から該当者のデータをText前月分に取り込む。
UserFormのコードをこんな風に組んでみてください
Dictionaryオブジェクトを使うので
★ 事前に Microsoft Scripting Runtime に参照設定しておいてください。
'---------------------------------------------------
Option Explicit
Private dic As Dictionary
Private Sub UserForm_Initialize()
Dim dat As Variant
Dim i As Long
With Worksheets("前月分") '前月分表データを配列にコピー
dat = .Range("A2", _
.Cells(.Rows.Count, 1).End(xlUp)).Resize(, 3).Value
End With
Set dic = New Dictionary
For i = 1 To UBound(dat)
dic(dat(i, 1)) = dat(i, 3) 'key:=社員ID Item:=前月分支給額
Next
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Set dic = Nothing '辞書を開放する
End Sub
Private Sub Text社員ID_Change()
Dim sID As String
sID = Text社員ID.Text
If Len(sID) Then
If dic.Exists(sID) Then
Text前月分.Text = dic(sID)
Else
' 無ければ「該当者のデータがありません。」と表示する
End If
End If
End Sub
|
|