【问题标题】:Dynamically adding column values based on combo box selection基于组合框选择动态添加列值
【发布时间】:2020-04-09 09:19:55
【问题描述】:

我需要你的帮助。看来我在代码中编写的内容并没有完成我在这里尝试做的事情。

目标是有 2 个用户表单组合框,一个用于手动添加一次 [3,4,5] 的(楼层)值,另一个用于根据选择动态添加值的组合框(办公室)在楼层选择框中制作。

例如,如果我在楼层组合框中选择值 [3],则办公室组合框将包含以下值:

A-01
A-02
A-03
A-04
A-05
A-06
A-07
A-08

我认为这段代码可以工作,但它没有:

'Cells(row, col)

Private Sub floor_Change()
    lRow = Sheets("Office Spaces").UsedRange.Rows.Count

    With Sheets("Office Spaces")
        For i = 2 To lRow
            If .Cells(i, 1).Value = UserForm1.floor.Value Then
                UserForm1.office.AddItem .Cells(i, 2).Value
            End If
        Next i
    End With
End Sub

这是我的 Excel 表格中的数据:

【问题讨论】:

  • 之前尝试debug.? UserForm1.floor.Value,确保您确实拥有您所期望的。另外,如果有的话,组合中会包含什么?
  • 有什么问题?是错误的值还是根本没有填充?
  • 您应该在添加项目之前清除您的办公室组合框。 floor_Change 中的第一个操作应该是 UserForm1.office.Clear,否则每次更改楼层时它都会向组合框中添加越来越多的项目。

标签: excel vba


【解决方案1】:
'Cells(row, col)

Private Sub floor56_Change()

UserForm1.office.Clear

Dim sh
Dim rw

Set sh = Sheets("Office Spaces")

For Each rw In sh.Rows

  If sh.Cells(rw.row, 1).Text = UserForm1.floor.Value Then

    UserForm1.office.AddItem (sh.Cells(rw.row, 2).Value)

  End If

Next rw

End Sub

Private Sub floor_Change()

    If UserForm1.floor.Value <> "" Then

        UserForm1.office.Clear

        Dim ws
        Set ws = ThisWorkbook.Worksheets("Office Spaces")

        Dim rng
        Set rng = ws.Range("A:A")

        For Each cell In rng

            If cell.Text = UserForm1.floor.Value Then

                UserForm1.office.AddItem (cell.Offset(0, 1).Value)

            End If

        Next cell

    End If

End Sub

【讨论】:

  • 我建议尽可能不要使用Variantswsrng)。正确的变量类型规范是一种非常好的做法。我还建议激活Option Explicit:在 VBA 编辑器中转到 ToolsOptionsRequire Variable Declaration。并声明 all 变量。 • 此外For Each cell In rng 其中rng 是整个A 列将花费不必要的长时间。最好将其缩小到数据所在的范围(并省略 A 列末尾的所有空白)。
  • 另外你应该解释你做了什么以及为什么。在大多数情况下,没有文字或解释的代码答案是糟糕的答案。
猜你喜欢
  • 2018-12-22
  • 1970-01-01
  • 2021-08-07
  • 2021-07-13
  • 2020-10-28
  • 2016-04-27
  • 2018-05-02
  • 1970-01-01
相关资源
最近更新 更多