如何将word中用户窗体中的依赖组合框列表设置为excel中基于独立组合框的范围

问题描述 投票:0回答:1

我试图将 Word 文档中的用户窗体中的依赖组合框列表设置为 Excel 中的范围,该范围将根据独立组合框进行更改。独立组合框中将有超过 100 个选项,因此我不想为每个选项编写代码。每个范围也将有不同的总列数来覆盖。

这是我到目前为止所尝试过的。我删除了无法在此处共享的信息,但代码可以访问 Excel 电子表格。独立的组合框称为 CompanyName,依赖的组合框称为 Attention。

Private Sub CompanyName_Change()

    Attention.Clear
    On Error Resume Next
    Set xlApp = GetObject(, "Excel.Application")
    If Err Then
        Set xlApp = CreateObject("Excel.Application")
    End If
    On Error GoTo 0
    Set xlBook = xlApp.Workbooks.Open("FileLink")
    Set d = xlBook.Sheets("Sheet2").Cells.Find(what:=Me.CompanyName.Value, LookIn:=xlValues, LookAt:=xlWhole)
    
    For Each rng In xlBook.Sheets("Sheet2").Range("A2", "A29")
        If rng = Me.CompanyName.Value Then
            Attention.List = xlBook.Sheets("Sheet2").Range("A2:A", Range("A2").End(xlToRight)).Value
        End If
    Next rng
    
    xlBook.Close savechanges:=True
    xlApp.Quit

End Sub

当我运行它时,我收到运行时错误“1004”:应用程序定义或对象定义错误。当我单击“调试”时,它会突出显示 Attention.List 行。任何帮助将不胜感激。

excel vba ms-word
1个回答
0
投票
    Const xlToRight = -4161 
    For Each rng In xlBook.Sheets("Sheet2").Range("A2", "A29")
        If rng = Me.CompanyName.Value Then
            With xlBook.Sheets("Sheet2")
                Attention.List = xlApp.Transpose(.Range("A2", .Range("A2").End(xlToRight)).Value)
            End With
        End If
    Next rng
© www.soinside.com 2019 - 2024. All rights reserved.