我试图将 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 行。任何帮助将不胜感激。
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