【问题标题】:combo box value from another workbook来自另一个工作簿的组合框值
【发布时间】:2018-03-27 16:44:35
【问题描述】:

我正在为用户表单中的组合框创建 excel 宏。我已成功在单个工作簿中创建。 这是我在当前工作簿中的代码。

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

我现在想要做的是,我想从另一个工作簿中获取我的组合框的值,比如说范围列 G 中的 Project.xlsx。

知道代码会是什么样子吗?

【问题讨论】:

    标签: excel combobox vba


    【解决方案1】:

    您只需在方括号中添加工作簿名称的前缀,但如果您这样做了:

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

    那么这将不起作用,因为您没有限定要使用的Range(例如,项目工作簿中某些工作表中的那个)。

    下面的代码将在 Project 工作簿的 Sheet1 的 G 列中找到范围,并将值分配给您的 UserForm 中的 ComboBox

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-18
      • 2014-12-09
      相关资源
      最近更新 更多