2013-08-08 21 views
7

Bir kullanıcının farklı bir çalışma kitabında olması muhtemel bir aralığı seçmesine izin vermek istiyorum.VBA Farklı çalışma alanındaki aralığı seçmek için iletişim kutusu

Bunu, çalışma kitabındaki verileri seçmek için çalışan ancak farklı bir çalışma kitabında bir aralık seçmeme izin vermeyi reddeden giriş kutusuyla ("", tip: = 8) yapmayı denedim.

Bu nedenle, bu görevi gerçekleştirmeme izin veren bir iletişim kutusu istiyorum. Özgürdüm yana

+0

kullanın RefEdit denetim çalıştırdığınızda. Ancak diğer çalışma kitaplarından aralıkları almak için RefEdit Control'ü kullanırken çok dikkatli olmanız gerekiyor. Bir örnek istiyorsanız bana bildirin, çünkü bu daha az bilinen bir şeydir ... –

cevap

19

, I, A RefEdit Kontrol bir Userform oluşturma ve ComboBox yerleştirmek Eğer

örnek oluşturulan ve bir Label

enter image description here

Sonraki UserForm'ı

Bu kodu yapıştırın
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 

bir UserForm UserForm'ı

enter image description here


enter image description here


enter image description here

+2

Nice one, Siddharth. –

+1

Hedef çalışma kitabı adı boşluk içeriyorsa veya hedef sayfanın boşlukları varsa (Excel 2007'de en az), bu başarısız olur. RefEdit değerini "!" Etrafında bölmeniz, RefEdit'in bunları eklediyse sayfa adı etrafında alıntılar çıkarmanız ve referansı '[çalışma kitabı adı] sayfa adı' olarak ayarlamanız gerekir! Referans (tek tırnaklara dikkat edin) – personne3000