小编tha*_*one的帖子

可搜索的组合框,在用户表单上包含建议列表

我有一个用户表单和一些带有下拉列表的组合框。然而,其中一个组合框的下拉列表中有近 1000 个项目,我希望用户能够开始在组合框中输入一个单词,并根据输入的单词获取可供选择的建议列表,例如,如果他们在组合框中输入“joh”我想向他们显示下拉列表中包含“joh”的所有选项的列表,以便他们可以选择他们想要的选项。包含近 1000 个需要上述功能的项目的组合框名为“cboProgrammeName”。我应该说下面的 VBA 已经提供了此功能,但并不完全。目前,如果我在组合框中输入“joh”,那么我必须单击组合框右侧的箭头才能查看基于“joh”的所有给定建议。但我想要的是 VBA 自动弹出建议列表,而无需我单击箭头。那可能吗?我的用户表单有很多 vba,但我认为与此问题相关的部分如下。如果有帮助的话,我可以在这里发布我所有的 VBA 代码。提前致谢

 Private Sub UserForm_Initialize()


'Add the drop down lists to combo boxes
 Dim cProgrammeName As Range
 Dim cTaskName As Range
 Dim cUserName As Range

Dim ws As Worksheet
Set ws = Worksheets("XXX")


  For Each cProgrammeName In ws.Range("ProgrammeNameList")
  With Me.cboProgrammeName
.AddItem cProgrammeName.Value
.List(.ListCount - 1, 1) = cProgrammeName.Offset(0, 1).Value
 End With
 Next cProgrammeName




  For Each cTaskName In ws.Range("TaskNameList")
 With Me.cboTaskName
.AddItem cTaskName.Value
 End With
 Next cTaskName


For Each cUserName In …
Run Code Online (Sandbox Code Playgroud)

excel vba

2
推荐指数
1
解决办法
8192
查看次数

VBA复制列的宽度

下面的 VBA 代码从源数据表复制数据并将其粘贴到特定表上。但是,我还需要它来粘贴源数据表上的列宽。那可能吗?谢谢你的帮助。

Private Sub Worksheet_Change(ByVal Target As Range)
Dim tableName As String
Dim tableRange As Range
Dim TypeOfCosts As String
Application.EnableEvents = False

If Range("X1").Text = "aaaa" Then
    TypeOfCosts = "_bbbb"
ElseIf Range("L3") = "cccc" Then
    TypeOfCosts = "_dddd"
Else
    TypeOfCosts = ""
End If

tableName = Range("Y1").Text & TypeOfCosts & "_Costs"

On Error Resume Next
Set tableRange = Application.Range(tableName)
Debug.Print ThisWorkbook.Names.Count
    If Not (tableRange Is Nothing) And Err = 0 Then
    Range("K9").Resize(10000, 10000).ClearContents
    Range("K9").Resize(10000, 10000).ClearFormats
    tableRange.Copy Destination:=Range("M8")
Else …
Run Code Online (Sandbox Code Playgroud)

excel vba

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

excel ×2

vba ×2