2015-10-23 7 views
0

Я пытаюсь создать простую систему регистрации. Для этого я создал пользовательскую форму, включая один ComboBox и четыре TextBoxes. Выбор в ComboBox должен выбирать, на каком листе данные сохраняются. Код ошибки является:Активировать другой рабочий лист через ComboBox

Set ws = Worksheets("sheet") 
    sheet = ComboBox1.Value 
    Worksheets("sheet").Select 

Моего общий код VBA является:

Private Sub CommandButton1_Click() 

Dim iRow As Long 
Dim ws As Worksheet 
Dim sheet As String 


Set ws = Worksheets("sheet") 
sheet = ComboBox1.Value 

Worksheets("sheet").Select 



' Verify if First Name is available 
If Trim(Me.TextBox1.Value) = "" Then 
    Me.TextBox1.SetFocus 
    MsgBox "Voornaam ontbreekt" 
    Exit Sub 
End If 

' Verify if Last Name is available 
If Trim(Me.TextBox2.Value) = "" Then 
    Me.TextBox2.SetFocus 
    MsgBox "Achternaam ontbreekt" 
    Exit Sub 
End If 

' Verify if Klasse is available 
If Trim(Me.ComboBox1.Value) = "" Then 
    Me.ComboBox1.SetFocus 
    MsgBox "Klasse ontbreekt" 
    Exit Sub 
End If 

' Verify if Paard is available 
If Trim(Me.TextBox4.Value) = "" Then 
    Me.TextBox4.SetFocus 
    MsgBox "Naam paard ontbreekt" 
    Exit Sub 
End If 


'find first empty row in database 
iRow = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row 

'copy the data to the database 
ws.Cells(iRow, 1).Value = Me.TextBox1.Text 
ws.Cells(iRow, 2).Value = Me.TextBox2.Text 
ws.Cells(iRow, 3).Value = Me.ComboBox1.Text 
ws.Cells(iRow, 4).Value = Me.TextBox4.Text 
ws.Cells(iRow, 5).Value = Me.TextBox5.Text 

'clear the data in all textbox 

Dim ctl 
For Each ctl In Me.Controls 
If TypeOf ctl Is MSForms.TextBox Then 
    ctl.Text = "" 
End If 

Next ctl 

End Sub 



Private Sub UserForm_Initialize() 
With ComboBox1 
.AddItem "0,80 m" 
.AddItem "0,90 m" 
.AddItem "1 m" 
.AddItem "1,10 m" 
.AddItem "1,20 m" 
.AddItem "1,30 m" 
End With 

End Sub 
+0

Какой проблема, с которой вы сталкиваетесь? – tguzella

+0

Сначала вы устанавливаете variale, а затем используете его: sheet = ComboBox1.Value Установить ws = Рабочие листы («лист») Рабочие листы («лист»). Выберите – Fabrizio

+0

Вы говорите, что 'sheet' является листом, а затем пытается сказать, что он равен 'ComboBox1.Value' – Calum

ответ

0

Если я правильно понял, то, возможно, ниже, что вы хотите:

sheet = ComboBox1.Value 
Set ws = Worksheets(sheet) 
ws.Select 

Проблемы с оригиналом что переменная sheet после назначения не используется, чтобы выбрать лист и т. д.

Смежные вопросы