|
dataシートのAA列を作業列として数式を入れ、ComboBox1〜ComboBox4の値を
繋ぎ合わせた文字列と比較して、一致した行があったらそのE列にComboBox5の
値を加算、一致しなかったら最終入力行 + 1へ新規に追加する。
というコードを提示してみます。
Private Sub CommandButton2_Click()
Dim MxR As Long
Dim Ary As Variant, CkR As Variant
Dim CkSt As String
Ary = Array(ComboBox1.Text, ComboBox2.Text, _
ComboBox3.Text, ComboBox4.Text)
With Worksheets("data")
MxR = .Range("A65536").End(xlUp).Row
If MxR = 1 Then
.Range("A2:D2").Value = Ary
.Range("E2").Value = Val(ComboBox5.Text)
Else
If IsEmpty(.Cells(MxR, 27).Value) Then
.Range(.Cells(2, 27), .Cells(MxR, 27)).Formula = _
"=CONCATENATE($A2,"","",$B2,"","",$C2,"","",$D2)"
End If
CkSt = Join(Ary, ",")
CkR = Application.Match(CkSt, .Columns(27), 0)
If IsError(CkR) Then
.Range(.Cells(MxR + 1, 1), .Cells(MxR + 1, 4)) _
.Value = Ary
.Cells(MxR + 1, 5).Value = Val(ComboBox5.Text)
Else
.Cells(CkR, 5).Value = _
.Cells(CkR, 5).Value + Val(ComboBox5.Text)
End If
End If
End With
Worksheets("menu").Activate
MsgBox "入力完了", 64
End Sub
|
|