2017-10-16 14 views
0

私はユーザーフォームでコンボボックス用のExcelマクロを作成しています。私は単一のワークブックで作成するのに成功しました。 ここに現在のワークブックのコードがあります。別のブックからのコンボボックスの値

ComboBox1.RowSource = "Sheet1!G1:G" & Range("G" & Rows.Count).End(xlUp).Row 

私が今やりたいことですが、私は別のブックから私のコンボボックスの値を取得したい、コードは何になりますすべてのアイデア範囲の列G.

でProject.xlsxを言うことができます外見は?

答えて

0
あなただけの角括弧内のワークブックの名前の前に付ける必要がある

あなただけやった場合:次に

ComboBox1.RowSource = "[Project.xlsx]Sheet1!G1:G" & Range("G" & Rows.Count).End(xlUp).Row 

あなたが認定していないとして、それが動作しないRangeあなたは(例えば、1つで作業したいですプロジェクトワークブックのワークシートを参照してください)。

次のコードは、プロジェクトのワークブックのSheet1の列Gに範囲を見つけて、あなたのUserFormComboBoxに値を代入します:

Option Explicit 

Private Sub UserForm_Initialize() 
    Dim wbExternal As Workbook '<-- the other workbook with the data 
    Dim wsExternal As Worksheet '<-- the worksheet in the other workbook 
    Dim lngLastRow As Long  '<-- the last row on the worksheet 
    Dim rngExternal As Range  '<-- range of data for the RowSource 

    Set wbExternal = Application.Workbooks("Project.xlsx") 
    Set wsExternal = wbExternal.Worksheets("Sheet1") '<-- change to your sheet if required 
    lngLastRow = wsExternal.Range("G" & wsExternal.Rows.Count).End(xlUp).Row 
    Set rngExternal = wsExternal.Range("G1:G" & CStr(lngLastRow)) 

    ComboBox1.RowSource = rngExternal.Address(External:=True) 

End Sub 
関連する問題