【问题标题】:Excel VBA, finding the row count of a range and applying it to the end of another rangeExcel VBA,查找范围的行数并将其应用于另一个范围的末尾
【发布时间】:2013-10-14 14:10:22
【问题描述】:

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

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

谢谢大家!!

范围(“IF2”)。选择 ActiveCell.Formula = _ "=IF((OR(NOT(ISERR(SEARCH(""perf"",A24))),NOT(ISERR(SEARCH(""profi"", A24))),NOT(ISERR(SEARCH(""commu"",A24))),NOT(ISERR(SEARCH(""equip"",A24) )),NOT(ISERR(SEARCH(""occu"",A24))),NOT(ISERR(SEARCH(""emplo"",A24))) ,NOT(ISERR(SEARCH(""liqu"",A24))),NOT(ISERR(SEARCH(""withholding"",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 中的任何内容,有什么想法吗?

【问题讨论】:

  • 询问代码的问题必须证明对手头的问题有最低限度的了解,包括尝试的解决方案、失败的地方等。
  • 失败的地方:我可以利用 COUNTA 来查找表中的行数。但是,我如何将其转换为另一列中的填充将遍历的行的末尾 #?可以将该值从 COUNTA 分配给变量。但是,我可以将该变量放入 Range() 中吗?这样我就有 Range(XZ_Variable_)?
  • 我仍然没有看到任何代码。祝你好运。
  • 已更新,抱歉。

标签: vba excel row range


【解决方案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-07-25
  • 1970-01-01
  • 2014-11-21
  • 2012-05-31
  • 2020-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多