繁体   English   中英

您可以使用组合框的值来选择一系列单元格吗

[英]Can you use the Value of a Combo Box to select a Range of Cells

我有一个值为“ConcretePad”的 ComboBox。 我还有一个名为“ConcretePad”的范围。 我正在尝试根据 ComboBox 值选择范围。

***Private Sub CatagoryCB_Change()
Dim rg As String
rg = (CatagoryCB.Value)
Worksheets("Data").Select
If (CatagoryCB.Value = "") Then
GoTo Line2
ElseIf (CatagoryCB.Value <> "") Then
Range(rg).Select
Line2:
End If
End Sub***

试图让 rg 代表 CatagoryCB.Value 的值,我做到了,但是当我将它放在范围的单元格引用中时,我得到一个错误

您可能正在寻找这样的东西(前提是您使用的是 ListFillRange):

Private Sub CatagoryCB_Change()
If (CatagoryCB.ListIndex <> -1) Then
    Worksheets("Data").Select
    Range(CatagoryCB.ListFillRange).Cells(CatagoryCB.ListIndex + 1, 1).Select
End If
End Sub

这只是抓取ListFillRange ,导航到与其同步的ListIndex并选择它。

CatagoryCB.ListIndex将返回列表中所选项目的索引。

如果选择了不在列表中的值,它将返回-1

因此,例如,如果我将ListFillRange设置为A1:A3并选择第一个选项,我将执行Range("A1:A3").Cells(1, 1).Select因为所选项目的ListIndex0 (第一项)和.Cells(0 + 1, 1) = .Cells(1, 1)

如果您手动填充 ComboBox,则需要为其指定要链接到的范围或执行find操作。

很难从您的代码中看出。

列表填充范围

演示

我想到了。 我的 (CatagoryCB.Value) 不等于我的范围名称。 这是我能够生成的代码,用于在当前工作表上的数据表中添加一个部件。 这也将新行添加到我的范围

Dim i As String
Dim c As Integer
Dim g As Integer
i = CatagoryCB.Value
Worksheets("Data").Select

If i = "" Then
GoTo Line2
ElseIf i <> "" Then
Range(i).Select
c = Range(i).Count
Range(i).Activate
ActiveCell.Offset(c, 0).Select
g = ActiveCell.Row
Worksheets("Data").Rows(g).Insert
Range(i).Resize(c + 1).Name = i
Cells(g, 1).FormulaR1C1 = Cells(g - 1, 1).FormulaR1C1
Cells(g, 3) = (Part_NumberTB.Value)
Cells(g, 4) = (VendorCB.Value)
Cells(g, 5) = (DescriptionTB.Value)
Cells(g, 7) = (CostTB.Value)
Cells(g, 8) = (CostTB.Value * 1.35)
Cells(g, 9) = (CostTB.Value * 1.35)
Cells(g, 10).FormulaR1C1 = Cells(g - 1, 10).FormulaR1C1
Cells(g, 11).FormulaR1C1 = Cells(g - 1, 11).FormulaR1C1
Line2:
End If

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM