【问题标题】:Declaring last row references in Excel formulas through VBA通过 VBA 在 Excel 公式中声明最后一行引用
【发布时间】:2015-06-03 04:17:45
【问题描述】:

为了尝试采用我的一个基本程序并对其进行更多开发,我需要帮助来引用 Excel 公式中的最后一行引用,以及将公式一致地拖到文档的最后一行。

为了详细说明,我试图在我的 vlookup 公式中引用一个不断扩展的映射表中的最后一行。我需要这个的原因是因为当我不再编写这个程序时这个映射表会扩展,我需要我的 vlookup 公式,它会在我每次运行程序时生成以适应不断变化的大小。

另外,我更紧迫的问题是关于采用该 vlookup 公式并能够将其拖到工作表的最后一行。工作表将是静态的,最后一行的范围从 70,000 行到 90,000 行不等。我试图避免在这种情况下出现循环,因为这已经是一个非常苛刻的公式,我不想遍历每一行。

目前我的基本代码如下所示(这是作为概念验证而构建的,我知道当前方法不是最巧妙的,但它达到了最初的目的)。

        Ath.Cells(1, x) = "Business"
    Ath.Cells(2, x).Select
    ActiveCell.FormulaR1C1 =  "=IFERROR(VLOOKUP(RC[1],Mapping!R2C4:R264C5,2,0),VLOOKUP(LEFT(RC[1],2),Mapping!R1C3:R264C5,3,0))"
    Ath.Range("d2").Copy
    Range("d2:d90000").Select
    ActiveSheet.Paste
    Calculate

我就是想改变这个

Ath.Range("d2").Copy
    Range("d2:d90000").Select
    ActiveSheet.Paste

ActiveCell.FormulaR1C1 =  "=IFERROR(VLOOKUP(RC[1],Mapping!R2C4:R264C5,2,0),VLOOKUP(LEFT(RC[1],2),Mapping!R1C3:R264C5,3,0))"

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    也许这些?

    Ath.Range("d2").Copy
    Range("d2:d" & Range("D" & Rows.Count).End(xlUp).Row).Paste
    
    ActiveCell.FormulaR1C1 = "=IFERROR(VLOOKUP(RC[1],Mapping!R2C4:R" & Sheets("Mapping").Range(ActiveCell.Offset(Rows.Count, -1)).End(xlUp).Row & "C5,2,0),VLOOKUP(LEFT(RC[1],2),Mapping!R1C3:R" & Sheets("Mapping").Range(ActiveCell.Offset(Rows.Count, -1)).End(xlUp).Row & "C5,3,0))"
    

    【讨论】:

    • 该公式在执行时出现错误。不知道有什么问题。我指的是第二部分。
    【解决方案2】:

    将 Dans 的答案与我自己的工作相结合,我开发了一个解决方案。

    Sub Formulas()
    
    Dim Map As Worksheet
    Dim Ath As Worksheet
    Dim last As Long
    Set Ath = Sheets("Athena IBT TEST")
    Set Map = Sheets("Mapping")
    
    
    last = Map.Cells(Rows.Count, "D").End(xlUp).Row
    
    
    ActiveCell.FormulaR1C1 = "=IFERROR(VLOOKUP(RC[1],Mapping!R1C1:R" & last & "C4,4,0),IFERROR(VLOOKUP(LEFT(RC[1],3),Mapping!R1C2:R" & last & "C4,3,0),VLOOKUP(LEFT(RC[1],3),Mapping!R1C3:R" & last & "C4,2,0)))"
    
    
    End Sub
    

    【讨论】:

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