在excel文件'A.xlsx
' - 我有一個用戶表單,其中點擊瀏覽按鈕(CommandButton1
),打開另一個excel文件(說'B.xlsx
)',目前在excelfile張在 '選擇需求計劃' 組合框顯示(ComboBox1
)通過特定工作簿循環(通過路徑)和特定工作表
執行此代碼是:
Private Sub CommandButton1_Click()
Dim sFilePath As String
sFilePath = Application.GetOpenFilename()
Workbooks.Open (sFilePath)
For Each sht In ActiveWorkbook.Sheets
Form.ComboBox1.AddItem (sht.Name)
Next sht
End Sub
我はNT所選擇的工作表的所有列標題(列名)(說Sheet1
)選定的工作簿(B.xlsx
)在其他組合框顯示(Part Number, CSUFI/ATA, Keyword
..)
我開始寫一個單獨的功能如下:
Private Sub ComboBox1_Change()
cmb = Form.ComboBox1.Value
Dim Cell As Range
For Each Cell In ActiveWorkbook.Worksheets(cmb).Range("A1:AR1")
Form.ComboBox2.AddItem (Cell.Value)
Form.ComboBox3.AddItem (Cell.Value)
Form.ComboBox4.AddItem (Cell.Value)
Form.ComboBox5.AddItem (Cell.Value)
Form.ComboBox6.AddItem (Cell.Value)
Form.ComboBox7.AddItem (Cell.Value)
Form.ComboBox8.AddItem (Cell.Value)
Form.ComboBox9.AddItem (Cell.Value)
Form.ComboBox10.AddItem (Cell.Value)
Form.ComboBox11.AddItem (Cell.Value)
Form.ComboBox12.AddItem (Cell.Value)
Form.ComboBox13.AddItem (Cell.Value)
Next Cell
End Sub
很明顯,這個代碼的問題是它通過當前的ActiveWorkbook
這是A.xlsx循環。我希望它通過選定的工作簿循環(B.xlsx)
- 如何做到這一點?
另外,截至目前,我給它一個硬編碼範圍(A1:AR1),這會導致組合框中出現很多空條目。意圖是它只遍歷非空列標題(有效的列標題)
- 我該怎麼做?
完整的代碼截至目前:
Private Sub ComboBox1_Change()
cmb = Form.ComboBox1.Value
Dim Cell As Range
For Each Cell In ActiveWorkbook.Worksheets(cmb).Range("A1:AR1")
Form.ComboBox2.AddItem (Cell.Value)
Form.ComboBox3.AddItem (Cell.Value)
Form.ComboBox4.AddItem (Cell.Value)
Form.ComboBox5.AddItem (Cell.Value)
Form.ComboBox6.AddItem (Cell.Value)
Form.ComboBox7.AddItem (Cell.Value)
Form.ComboBox8.AddItem (Cell.Value)
Form.ComboBox9.AddItem (Cell.Value)
Form.ComboBox10.AddItem (Cell.Value)
Form.ComboBox11.AddItem (Cell.Value)
Form.ComboBox12.AddItem (Cell.Value)
Form.ComboBox13.AddItem (Cell.Value)
Next Cell
End Sub
Private Sub CommandButton1_Click()
Dim sFilePath As String
sFilePath = Application.GetOpenFilename()
Workbooks.Open (sFilePath)
For Each sht In ActiveWorkbook.Sheets
Form.ComboBox1.AddItem (sht.Name)
Next sht
End Sub
然後不要使用'activebook',使用'workbooks(「B.xlsx」)' – jsotola
如何?工作簿的路徑位於'CommandButton1_Click()' – user248884