查找/替换公式中的行号

问题描述 投票:0回答:1

我有一个 Excel 公式,我希望更改特定单元格中找到的范围行号。

=SORT(UNIQUE(FILTER(CHECKLIST!K7:K120180,(CHECKLIST!B7:B120180=INVENTORY!H5)*(CHECKLIST!C7:C120180=INVENTORY!I5)*(CHECKLIST!D7:D120180=INVENTORY!J5)*(CHECKLIST!E7:E120180=INVENTORY!K5)*(CHECKLIST!F7:F120180=INVENTORY!L5)*(CHECKLIST!G7:G120180=INVENTORY!M5)*(CHECKLIST!J7:J120180=INVENTORY!N5))))

例如,我想更新 120180 并将其替换为单元格 J3 中找到的值(等于 123456)

当我使用“查找和替换”时,没有任何问题,因为我是手动发布值。当我创建宏时,它不起作用,因为这些值似乎是静态的,并且不会根据我想要引用的单元格而改变。

Sub vdc_DataRefresh_Lookup()
'
' Updates array formula with new Last Row Number in Checklist Table
'
'
    Range("B2").Select
    ActiveCell.Formula2R1C1 = "=UNIQUE(CHECKLIST!R[5]C:R[120156]C)"
    Range("J2").Select
    ActiveCell.FormulaR1C1 = "120158"
    Range("J2").Select
    ActiveCell.FormulaR1C1 = "120158"
    Range("J3").Select
    ActiveCell.FormulaR1C1 = "=R[-2]C[-9]"
    Range("J3").Select
    Selection.Copy
    Cells.Replace What:="120158", Replacement:="120159", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
End Sub

有没有办法突出显示一系列公式并查找值(基于单元格)并将其替换为新值(基于不同的单元格)?这是我想要完成的简化版本。

单元格 A1 中的公式 =UNIQUE(CHECKLIST!B7:B120180) 将在 A2 = 123456 中取值的宏或 VBA 脚本 并替换/更新单元格 A1 UNIQUE 中的公式(CHECKLIST!B7:B123456)

尝试记录宏,更新VBA,但结果是静态的而不是动态的。

excel vba replace find
1个回答
0
投票

如果您只是想让独特的函数接受一组单元格,则可以使用

indirect
address
公式来填充您的独特公式,而不是使用 VBA。

组合两个

Address
公式以生成您在 unique 函数中所需的整个范围,如下所示:

=Address( row( [First Cell]), Column( [first cell]) ) &":"& address( counta( [column of list]), column( [first cell]) )

然后在唯一函数中引用此单元格(在我的示例 B1 中)

=Unique( indirect(B1) )

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.