2013-08-08 25 views
7

Ich möchte zulassen, dass ein Benutzer einen Bereich auswählt, der sich wahrscheinlich in einer anderen Arbeitsmappe befindet.VBA Dialogfeld zum Auswählen eines Bereichs in einer anderen Arbeitsmappe

Ich habe versucht, dies mit Eingabefeld ("", Typ: = 8) zu tun, die Daten in der Arbeitsmappe auswählen, aber nicht zulassen, dass ich einen Bereich in einer anderen Arbeitsmappe auswählen kann.

Daher möchte ich ein Dialogfeld, mit dem ich diese Aufgabe ausführen kann.

+0

Verwenden Sie ein RefEdit-Steuerelement in einer Userform. Allerdings müssen Sie sehr vorsichtig sein, wenn Sie RefEdit Control verwenden, um Bereiche aus anderen Arbeitsmappen zu erhalten, sonst hängt Excel! Lass mich wissen, wenn du ein Beispiel willst, denn das ist etwas, das sehr wenig bekannt ist ... –

Antwort

19

Da ich frei war, habe ich ein Beispiel für Sie

ein Userform erstellen und ComboBox Ort, eine RefEdit Steuerung und ein Label

enter image description here

Weiter, um diesen Code in der Userform einfügen

Private Sub UserForm_Initialize() 
    Dim wb As Workbook 

    '~~> Get the name of all the workbooks in the combobox 
    For Each wb In Application.Workbooks 
     ComboBox1.AddItem wb.Name 
    Next 

    ComboBox1 = ActiveWorkbook.Name 
End Sub 

'~~> This lets you toggle between all open workbooks 
Private Sub Combobox1_Change() 
    If ComboBox1 <> "" Then Application.Workbooks(ComboBox1.Text).Activate 

    Label1.Caption = "": RefEdit1 = "" 
End Sub 

'~~> And this lets you choose the relevant range 
Private Sub RefEdit1_Change() 
    Label1.Caption = "" 

    If RefEdit1.Value <> "" Then _ 
    Label1.Caption = "[" & ComboBox1 & "]" & RefEdit1 
End Sub 

Dies ist, was Sie bekommen : wenn Sie die Userform

enter image description here


enter image description here


enter image description here

+2

Nice one, Siddharth. –

+1

Dies schlägt fehl, wenn der Name der Zielarbeitsmappe Leerzeichen enthält oder wenn das Zielblatt Leerzeichen enthält (mindestens in Excel 2007). Sie müssen den refEdit-Wert um das "!" Aufteilen, Anführungszeichen um den Blattnamen entfernen, wenn RefEdit diese hinzugefügt hat, und den Verweis als '[Arbeitsmappenname] Blattname' festlegen! Referenz (beachten Sie die einfachen Anführungszeichen) – personne3000

Verwandte Themen