2013-10-21 91 views
0

基于组合框的选择,我如何从组合框excel 2010中选择转到其他工作表?例如,我有一个组合框中的所有monthes,并基于一月我想要的信息去一月。如果我选择二月份,我希望用户表单上的信息转到工作表二月份,因此。我想通过用户窗体上的提交按钮(Command_button)实现这一点。任何帮助将大大appriciated。根据组合框的选择,我如何从组合框excel 2010中选择转到其他工作表?

 Option Explicit 
Dim WrkSheet As Worksheet 

Private Sub btnSubmit_Click() 
Application.EnableEvents = False 

Dim ssheet As Workbook 
Dim cellVal1 As String, cellVal2 As String, cellVal3 As String, cellVal4 As String, cellVal5 As String, cellVal6 As String, cellVal7 As String, cellVal8 As String, cellVal9 As String, cellVal10 As String, cellVal11 As String, cellVal12 As String 
Dim cellVal13 As String, cellVal14 As String, cellVal15 As String, cellVal16 As String, cellVal17 As String, cellVal18 As String, cellVal19 As String, cellVal20 As String, cellVal21 As String, cellVal22 As String 
Dim cellVal23 As String, cellVal24 As String, cellVal25 As String, cellVal26 As String, cellVal27 As String, cellVal28 As String, cellVal29 As String, cellVal30 As String, cellVal31 As String, cellVal32 As String, cellVal33 As String, cellVal34 As String 

Dim shtCmb As String 
Dim RwLast As Long 

shtCmb = Me.cmbListItem1.Value 
If shtCmb = "" Then 
    MsgBox "Please choose a month.", vbOKOnly 
    Me.cmbListItem1.SetFocus 
End If 

cellVal1 = Me.cmbListItem1.Text 
cellVal2 = Me.cmbListItem2.Text 
cellVal3 = Me.cmbListItem3.Text 
cellVal4 = Me.TextBox31.Text 
cellVal5 = Me.TextBox1.Text 
cellVal6 = Me.TextBox2.Text 
cellVal7 = Me.TextBox3.Text 
cellVal8 = Me.TextBox4.Text 
cellVal9 = Me.TextBox5.Text 
cellVal10 = Me.TextBox6.Text 
cellVal11 = Me.TextBox7.Text 
cellVal12 = Me.TextBox8.Text 
cellVal13 = Me.TextBox9.Text 
cellVal14 = Me.TextBox10.Text 
cellVal15 = Me.TextBox11.Text 
cellVal16 = Me.TextBox12.Text 
cellVal17 = Me.TextBox13.Text 
cellVal18 = Me.TextBox14.Text 
cellVal19 = Me.TextBox15.Text 
cellVal20 = Me.TextBox16.Text 
cellVal21 = Me.TextBox17.Text 
cellVal22 = Me.TextBox18.Text 
cellVal23 = Me.TextBox19.Text 
cellVal24 = Me.TextBox20.Text 
cellVal25 = Me.TextBox21.Text 
cellVal26 = Me.TextBox22.Text 
cellVal27 = Me.TextBox23.Text 
cellVal28 = Me.TextBox24.Text 
cellVal29 = Me.TextBox25.Text 
cellVal30 = Me.TextBox26.Text 
cellVal31 = Me.TextBox27.Text 
cellVal32 = Me.TextBox28.Text 
cellVal33 = Me.TextBox29.Text 
cellVal34 = Me.TextBox30.Text 

RwLast = Worksheets(shtCmb).Range("AI" & Worksheets(shtCmb).Rows.Count).End(xlUp).Row 

Worksheets(shtCmb).Range("AI" & RwLast + 1).Value = cellVal1 
Worksheets(shtCmb).Range("AJ" & RwLast + 1).Value = cellVal2 
Worksheets(shtCmb).Range("A" & RwLast + 1).Value = cellVal3 
Worksheets(shtCmb).Range("AH" & RwLast + 1).Value = cellVal4 
Worksheets(shtCmb).Range("B" & RwLast + 1).Value = cellVal5 
Worksheets(shtCmb).Range("C" & RwLast + 1).Value = cellVal6 
Worksheets(shtCmb).Range("D" & RwLast + 1).Value = cellVal7 
Worksheets(shtCmb).Range("E" & RwLast + 1).Value = cellVal8 
Worksheets(shtCmb).Range("F" & RwLast + 1).Value = cellVal9 
Worksheets(shtCmb).Range("G" & RwLast + 1).Value = cellVal10 
Worksheets(shtCmb).Range("H" & RwLast + 1).Value = cellVal11 
Worksheets(shtCmb).Range("I" & RwLast + 1).Value = cellVal12 
Worksheets(shtCmb).Range("J" & RwLast + 1).Value = cellVal13 
Worksheets(shtCmb).Range("K" & RwLast + 1).Value = cellVal14 
Worksheets(shtCmb).Range("L" & RwLast + 1).Value = cellVal15 
Worksheets(shtCmb).Range("M" & RwLast + 1).Value = cellVal16 
Worksheets(shtCmb).Range("N" & RwLast + 1).Value = cellVal17 
Worksheets(shtCmb).Range("O" & RwLast + 1).Value = cellVal18 
Worksheets(shtCmb).Range("P" & RwLast + 1).Value = cellVal19 
Worksheets(shtCmb).Range("Q" & RwLast + 1).Value = cellVal20 
Worksheets(shtCmb).Range("R" & RwLast + 1).Value = cellVal21 
Worksheets(shtCmb).Range("S" & RwLast + 1).Value = cellVal22 
Worksheets(shtCmb).Range("T" & RwLast + 1).Value = cellVal23 
Worksheets(shtCmb).Range("U" & RwLast + 1).Value = cellVal24 
Worksheets(shtCmb).Range("V" & RwLast + 1).Value = cellVal25 
Worksheets(shtCmb).Range("W" & RwLast + 1).Value = cellVal26 
Worksheets(shtCmb).Range("X" & RwLast + 1).Value = cellVal27 
Worksheets(shtCmb).Range("Y" & RwLast + 1).Value = cellVal28 
Worksheets(shtCmb).Range("Z" & RwLast + 1).Value = cellVal29 
Worksheets(shtCmb).Range("AA" & RwLast + 1).Value = cellVal30 
Worksheets(shtCmb).Range("AB" & RwLast + 1).Value = cellVal31 
Worksheets(shtCmb).Range("AC" & RwLast + 1).Value = cellVal32 
Worksheets(shtCmb).Range("AD" & RwLast + 1).Value = cellVal33 
Worksheets(shtCmb).Range("AF" & RwLast + 1).Value = cellVal34 

Application.EnableEvents = True 

End Sub 

Private Sub cmbListItem1_Change() 

End Sub 

Private Sub optionCancel_Click() 
Unload Me 
End Sub 

Private Sub UserForm_Initialize() 

    Dim SH As Worksheet 
    Dim Entry As Variant 

    ' MonthName(Month(Now)) - Will return the name of the current Month 
    For Each SH In ThisWorkbook.Worksheets 
     If SH.Name = MonthName(month(Now)) Then 
      Set WrkSheet = SH 
      Exit For 
     End If 
    Next 

    'fill the combo box 
    With Me.cmbListItem1 
     For Each Entry In [List1] 
      .AddItem Entry 
     Next Entry 
     .Value = MonthName(month(Now)) 
    End With 
    'fill the combo box 
    With Me.cmbListItem2 
     For Each Entry In [List2] 
      .AddItem Entry 
     Next Entry 
    End With 
    'fill the combo box 
    With Me.cmbListItem3 
     For Each Entry In [List3] 
      .AddItem Entry 
     Next Entry 
    End With 

End Sub 
+0

你到目前为止尝试过什么?发布你的代码,以便我们可以用它来帮助你。如果你没有任何代码,那么给它一个镜头(最好的选择是使用宏记录器)并发回。 – Sorceri

回答

0

我已经做了3张:一月,二月,三月

创建了一个用户表:

enter image description here

用户窗体的Activate事件,添加个月至组合框。它的代码是:

Private Sub UserForm_Activate()  
With Me.ComboBox1  
.AddItem "Jan"  
.AddItem "Feb"  
.AddItem "Mar"  
.AddItem "Apr"  
.AddItem "May"  
End With  
End Sub  

事件的提交按钮点击:

Private Sub CommandButton1_Click()  
Dim month As String  
month = Me.ComboBox1.Value  
Select Case month  
Case "Jan"  
Sheets("Jan").Activate  
Case "Feb"  
Sheets("Feb").Activate  
Case "Mar"   
Sheets("Mar").Activate  
End Select  
End Sub 

现在运行的形式和尝试。谢谢。

+0

我把所有正确的代码放在最上面。它很棒!谢谢你的帮助! –

+0

非常欢迎您! – rohitgattani

相关问题