2013-07-17 82 views
-2

Im Monching,有没有人可以帮助我解决我的excel vbs代码,因为我是这项工作的新手。我需要这个条目是依赖于2 cbo的。Excel 2010中的VBA代码

当我把我的数据放在用户表单中时,数据覆盖了其他数据同样的单元格 我需要在用户表单中输入的金额取决于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 

这里是我的useform,成员和本月在那里的形式。当我选择成员和相应的一个月里,我想在S赔付金额写入值太平洋细胞。如果我选择股份,则支付的金额的价值会自动输入到股份表中。如果我在A4中选择会员并在F1中选择月份,则付款金额的值将在F4中。我需要这个代码。

我的形式

A2至A234是我的成员

B1到M1是我的月

+1

不清楚你在问什么。 请澄清您的具体问题或添加其他详细信息,以突出显示您的需要。正如目前所写,很难确切地说出你在问什么。 – 2013-07-17 08:22:02

+1

你可以[编辑]你的问题,首先让标题更有意义(你只有标签信息,根本不属于这个标签,并且它没有提到你问的问题),然后解释你的问题到底是什么?发布一大块代码(顺便说一下,'VBA',而不是'VBS')是不够的。我不知道这里真正的问题是什么。谢谢。 –

回答

0

我认为这个问题可能在于这部分代码:

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 

你正在将cboMembers中的值复制到单元格(rowCount + 2, 2)中。然后,您将cboMonth的值复制到同一个单元格中 - 覆盖之前放在那里的cboMembers的值。

这不是100%清楚你要怎么做,但这些代码可以更好地工作:

With Worksheets("Share").Range("B2") 
    .Offset(RowCount, 0).Value = Me.cboMembers.Value 
    .Offset(RowCount, 1).Value = Me.cboMonth.Value 
    .Offset(RowCount, 2).Value = Me.txtAmountPaid.Value 
End With