2013-08-08 28 views
7

異なるワークブックにある可能性のある範囲をユーザが選択できるようにします。VBA別のワークブックの範囲を選択するダイアログボックス

私は、入力帳( ""、タイプ:= 8)でこれを実行しようとしましたが、ブック内のデータを選択することはできますが、別のブックで範囲を選択することはできません。

このタスクを実行するためのダイアログボックスが必要です。

+0

ユーザーフォームでRefEditコントロールを使用してください。しかし、RefEdit Controlを使用してExcelがハングする他のブックから範囲を取得する際には、非常に注意する必要があります。これは非常に知られていないものなので、あなたが例をしたい場合私に教えてください... –

答えて

19

私はあなた

は、次のユーザーフォーム

にこのコードを貼り付け Userformを作成し、 ComboBoxを置き、 RefEditコントロールと Label

enter image description here

のために、私は例を作成し、無料だったので、

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 

これはあなたが得るものですユーザーフォームを実行

enter image description here


enter image description here


enter image description here

+2

ニース、シッダース。 –

+1

コピー先のブック名にスペースが含まれている場合、またはコピー先のシートにスペースが含まれている場合(Excel 2007以上)は失敗します。 refEditの値を "!"の周りに分割し、RefEditでそれらを追加した場合はシート名の前後に引用符を取り除き、[[ブック名]シート名]として参照を設定する必要があります。 – personne3000