|
▼ペコ さん:
>「実行エラー'1004':
> WorksheetFunctionクラスのMatchプロパティを取得できません。」
>というエラーが生じます。
こんにちは。
On Error Resume Next が入れて有るから出る筈がないのですが。
↑ をコメントにするとデータが一致しないときに
上記エラーが出ます。
TextBox1の値がSheet1上にあるか確認してみましょう。
でも不思議
一部書き換えましたのでコピペし直してください。
Option Explicit
Dim RR As Long
Private Sub ComboBox1_Change()
Dim R As Range
If RR = 0 Then Exit Sub
With Worksheets("Sheet2")
.AutoFilterMode = False
With .Range("A1").CurrentRegion
.AutoFilter Field:=1, Criteria1:=RR
.AutoFilter Field:=2, Criteria1:=Format(Me.ComboBox1.Value, "m/d")
With .SpecialCells(xlCellTypeVisible)
If .Areas.Count = 1 Then
Set R = .Offset(1).Resize(.Rows.Count - 1)
Else
Set R = .Areas(.Areas.Count)
End If
End With
With Me
.No = R.Cells(1, 1).Value
.依頼日 = Format(R.Cells(1, 2).Value, "m/d")
.対応日 = Format(R.Cells(1, 3).Value, "m/d")
.アフター内容 = R.Cells(1, 4).Value
End With
End With
End With
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim R As Range
RR = 0
If TextBox1.Text = "" Then Exit Sub
With Worksheets("Sheet1").Range("A1").CurrentRegion
On Error Resume Next
RR = WorksheetFunction.Match(TextBox1.Value, .Offset(0, 1).Resize(, 1), 0)
On Error GoTo 0
If RR = 0 Then Exit Sub
RR = .Cells(RR, 1).Value
End With
With Worksheets("Sheet2")
.AutoFilterMode = False
With .Range("A1").CurrentRegion
.AutoFilter Field:=1, Criteria1:=RR
With .SpecialCells(xlCellTypeVisible)
If .Areas.Count = 1 Then
Set R = .Offset(1, 1).Resize(.Rows.Count - 1)
Else
Set R = .Areas(.Areas.Count).Offset(, 1).Resize(, 1)
End If
End With
Me.ComboBox1.List = R.Value
End With
End With
End Sub
|
|