Im Monching さん、私はこの仕事に慣れていないので、Excel の vbs コードを解決するのを手伝ってくれる人はいますか? 「データベースへのコピーには、解決できない問題があります。エントリが 2 cbo に依存している必要があります。
データをユーザーフォームに入れると、データは同じセル内の他のデータを上書きしました。ユーザーフォームに入力する金額は、cboMembers と cboMonth に依存する必要があります。メンバーと月のいずれかを選択する場合、メンバーと月のセルに固有のエントリが必要です。
Private Sub cboMembers_Change()
End Sub
Private Sub cboMonth_Change()
End Sub
Private Sub cmdCancel_Click()
' Clear the form
For Each ctl In Me.Controls
If TypeName(ctl) = "TextBox" Or TypeName(ctl) = "ComboBox" Then
ctl.Value = ""
ElseIf TypeName(ctl) = "CheckBox" Then
ctl.Value = False
End If
Next ctl
End Sub
Private Sub cmdClose_Click()
Unload Me
End Sub
Private Sub cmdEnter_Click()
Dim iRow As Long
Dim ws As Worksheet
If OptionButton1 Then Set ws = Worksheets("Share")
If OptionButton2 Then Set ws = Worksheets("Salary")
If OptionButton3 Then Set ws = Worksheets("Emer")
If OptionButton4 Then Set ws = Worksheets("Bday")
If OptionButton5 Then Set ws = Worksheets("Educ")
On Error Resume Next
iRow = ws.Cells.Find("*", Range("B2"), xlFormulas, , xlByRows, xlPrevious).Row
On Error GoTo 0
iRow = iRow + 0
' Check user input
If Me.cboMembers.Value = "" Then
MsgBox "Please choose a Members.", vbExclamation, "UserForm1"
Me.cboMembers.SetFocus
Exit Sub
End If
If Me.cboMonth.Value = "" Then
MsgBox "Please choose a Month.", vbExclamation, "UserForm1"
Me.cboMonth.SetFocus
Exit Sub
End If
If Me.txtAmountPaid.Value = "" Then
MsgBox "Please enter an Amount.", vbExclamation, "UserForm1"
Me.txtAmountPaid.SetFocus
Exit Sub
End If
If Not IsNumeric(Me.txtAmountPaid.Value) Then
MsgBox "The Amount box must contain a number.", vbExclamation, "UserForm1"
Me.txtAmountPaid.SetFocus
Exit Sub
End If
'copy the data to the database
RowCount = Worksheets("Share").Range("B2").CurrentRegion.Rows.Count
With Worksheets("Share").Range("B2")
.Offset(RowCount, 0).Value = Me.cboMembers.Value
.Offset(RowCount, 0).Value = Me.cboMonth.Value
.Offset(RowCount, 1).Value = Me.txtAmountPaid.Value
End With
'clear the data
Me.cboMembers.Value = ""
Me.cboMonth.Value = ""
Me.txtAmountPaid.Value = ""
Me.OptionButton1.Value = ""
Me.OptionButton2.Value = ""
Me.OptionButton3.Value = ""
Me.OptionButton4.Value = ""
Me.OptionButton5.Value = ""
End Sub
Private Sub UserForm_Initialize()
Dim cmonth As Range
Dim ws As Worksheet
Set ws = Worksheets("LookUpEntry")
For Each cmonth In ws.Range("Month")
With Me.cboMonth
.AddItem cmonth.Value
End With
Next cmonth
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
Cancel = True
MsgBox "Please Use the Close Button!"
End If
End Sub
これが私のユースフォームです。メンバーと月はフォームにあります。メンバーと対応する月を選択すると、特定のセルに支払った金額の値が表示されます。シェアを選択すると、支払われた金額の値がシェアシートに自動的に入力されます。A4 でメンバーを選択し、F1 で月を選択した場合、支払われた金額の値は F4 になります。そのためのコードが必要です。
私のフォーム
A2からA234までが私のメンバー
B1からM1までが私の月