【问题标题】:Excel VBA Absolute ReferenceExcel VBA 绝对参考
【发布时间】:2017-04-17 11:27:58
【问题描述】:

对 Excel 非常陌生。我在 Excel 中有 3 张工作表。我正在尝试将旧值复制到一个单元格并从另一张表中查找新值。我的问题是

  1. 如何在公式中引用另一张表(请参阅我的查找部分) 例如,在包含 Match 的函数中,我想引用 Sheets EDR 而不是使用'for edr II'!

  2. 如何使用绝对引用? 例如,我想在查找表中查找 G 列而不是 C[4]?

对 Excel 非常陌生,所以我想以正确的方式学习它并了解经验法则。谢谢

Sub EDRII()
    Dim EDR As Worksheet, Lookup As Worksheet, FA As Worksheet
    Set EDR = ThisWorkbook.Worksheets("for edr II")
    Set Lookup = ThisWorkbook.Worksheets("Lookup")
    Set FA = ThisWorkbook.Worksheets("FA_Segment_Region")

    'Copy & Paste Past Values
    EDR.Range("B6:X10").Value = EDR.Range("B5:X9").Value


   'Lookup Value from Lookup Tab
    EDR.Range("C10").FormulaR1C1 = _
       "=INDEX(Lookup!C[4],MATCH('for edr II'!R[-8]C[-1],Lookup!C[3],0))"
    EDR.Range("D10").FormulaR1C1 = _
       "=INDEX(Lookup!C[4],MATCH('for edr II'!R[-8]C[-2],Lookup!C[2],0))"
End Sub

【问题讨论】:

标签: vba excel vlookup


【解决方案1】:

要指定绝对范围,请删除方括号。如果公式引用了自己的工作表,则根本不需要工作表名称。

With EDR
    .Range("C10").FormulaR1C1 = "=INDEX(Lookup!C7,MATCH('" & .Name & "'!R[-8]C[-1],Lookup!C[3],0))"
    .Range("D10").FormulaR1C1 = "=INDEX(Lookup!C7,MATCH('" & .Name & "'!R[-8]C[-2],Lookup!C[2],0))"
End With

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多