根据ComboBox值更改公式内容

时间:2017-06-28 12:04:10

标签: excel vba excel-vba combobox

我有一个ComboBox,它搜索确定的范围并替换所有公式中的内容。例如:

ComboBox的当前值是“MAI”

=COUNTIFS('CNAEs Inválidos MAI'!A:A;C8)

用户从ComboBox中选择值“JUN”,vba函数将其替换为:

=COUNTIFS('CNAEs Inválidos JUN'!A:A;C8)

搜索和替换只能工作一次,因为我无法从ComboBox中获取当前值以进行搜索。

到目前为止,这就是我所拥有的:

Option Explicit

Private Sub ComboBox1_Change()
Range("A1:R53").Select
    Selection.Replace What:=ComboBox1.Value, Replacement:=ComboBox1.Value, LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False
        Range("A1").Select
End Sub

有没有办法获取ComboBox当前值和ComboBox新选择的值?

2 个答案:

答案 0 :(得分:1)

首先查看INDIRECT工作表函数=COUNTIFS(INDIRECT("'CNAEs Inválidos " & combo value & "'!A:A";C8)这些行

答案 1 :(得分:0)

你本身需要ActiveX ComboBox吗?

否则请改用Form control。 在“表单”控件格式设置中,设置“输入范围”和“输出”单元格。 输入范围将采用您的文本值(MAI,JUN等) 输出单元格将在下拉列表中显示所选索引(1,2等)。

使用查找函数中的输出单元格值从输入范围中再次获取文本值。然后使用Indirect公式获得您所追求的结果公式。