2017-06-12 2 views
0

Ich habe zwei Comboboxen in Blatt1 gesetzt. Ich muss die Liste der Blätter zur Combobox hinzufügen, was gut funktioniert. Ich muss die erste Spalte von sheet2 zu Combobox zwei mit der ersten Zelle als Name hinzufügen (namens "Name"). Dieser Code funktionierte für meine UserForm, mit Me anstelle von Sheet1, aber die Verwendung funktioniert entweder nicht für mich.Combobox fügt keinen definierten benannten Bereich hinzu

Ich bekomme einen Fehler "Objekt unterstützt diese Eigenschaft oder Methode nicht".

Danke,

Private Sub Workbook_Open() 

    Dim refSheet As Worksheet 
    Set refSheet = ActiveWorkbook.Sheets(2) 

    Dim oSheet As Excel.Worksheet 

    For Each oSheet In ActiveWorkbook.Sheets 

     Sheet1.ComboBox1.AddItem oSheet.Name 

    Next oSheet 

    Dim lastrow As Long 

    lastrow = refSheet.Cells(Rows.Count, 1).End(xlUp).Row 

    With refSheet.Columns(1) 
     Range(Cells(1, 1), Cells(lastrow, 1)).Select 
     Selection.CreateNames Top:=True 
    End With 

    Sheet1.ComboBox2.RowSource = "Name" 

End Sub 
+0

manchmal, sheet1 ist nicht das gleiche wie Blätter (1). Sie können den Projekt-Explorer im vbe einchecken. Vielleicht braucht Ihr Schreiben Blätter (1) .Formen ("combobox1"), oder Oleobject, oder was auch immer .... –

Antwort

1

auf das Blatt Siehe:

lastrow = refSheet.Cells(Rows.Count, 1).End(xlUp).Row 

sein sollte:

lastrow = refSheet.Cells(refSheet.Rows.Count, 1).End(xlUp).Row 

Wenn Sie "Mit" hier verwenden:

With refSheet.Columns(1) 
    Range(Cells(1, 1), Cells(lastrow, 1)).Select 
    Selection.CreateNames Top:=True 
End With 

Sie sollten es eigentlich mit den Punkten verwenden:

With refSheet.Columns(1) 
    .Range(.Cells(1, 1), .Cells(lastrow, 1)).Select 
    Selection.CreateNames Top:=True 
End With 

(die Punkte Beachten Sie vor und Zellen-Bereich) nicht mit Punkten in der „Mit“ Block auf die Active bezieht sich

Verwandte Themen