0

我正在处理 Excel 中的 VBA 项目(2010 但在 xml 中运行,而不是在 xmls 中运行),我遇到了一些麻烦。简而言之,我在工作表最右侧的单元格中运行 =IF((OR(NOT(ISERR(SEARCH....etc)。然后,我需要 xlfilldown,但我需要范围为动态。IF 语句正在搜索的行因选项卡而异,并且其下方有数据(以 1-2 空白行分隔!)可能包含我正在搜索的相同字符串,但会提供错误的数据.

那么,是否可以跟踪数据中列端点的行号 IF((OR(NOT(ISERR(SEARCH ,然后将该列号应用为另一个范围的端点,以便 xlfilldown 仅作为远到桌子吗?如果是这样,该怎么做?

谢谢大家!!

Range("IF2").Select ActiveCell.Formula = _ "=IF((OR(NOT(ISERR(SEARCH("" perf "",A24))),NOT(ISERR(SEARCH("" profi "",A24 ))),NOT(ISERR(SEARCH("" commu "",A24))),NOT(ISERR(SEARCH(""装备"",A24))),NOT(ISERR(SEARCH("" occu "", A24))),NOT(ISERR(SEARCH("" emplo "",A24))),NOT(ISERR(SEARCH("" liqu "",A24))),NOT(ISERR(SEARCH(""预扣"" ,A24))),NOT(ISERR(SEARCH("" ince "",A24))),NOT(ISERR(SEARCH("" trust "",A24))),NOT(ISERR(SEARCH("" mana "", A24))),NOT(ISERR(SEARCH("" mgmt "", A24))),NOT(ISERR(SEARCH(""激励"", A24)))))=TRUE, C24, 0)"

我需要这个来填写,直到最后一个单元格包含 A 中的任何内容,有什么想法吗?

4

1 回答 1

1

您的公式可以简化为

=IF(SUM(IFERROR(SEARCH(words,A24),0))>0,C24, 0)

输入为数组公式 (Ctrl+Shift+Enter),其中words是一个命名范围,其中包含要搜索的单词。您可能会发现这更容易维护。

Dim f As Range
With ActiveSheet
    Set f = .Cells(Rows.Count, 1).End(xlUp)
    If f.Row >= 24 Then 
        .Range("B24").FormulaArray = _
                "=IF(SUM(IFERROR(SEARCH(words,A24),0))>0,C24, 0)"
        .Range("B24:B" & f.Row).FillDown
    End If
End With
于 2013-10-07T22:44:50.170 回答