首页 > 解决方案 > 根据另一张工作表的最后一行向下拖动公式

问题描述

希望可以有人帮帮我 :)

我在工作表 A 中有数据,在工作表 B 中有公式。工作表 B 中的公式仅在第 2 行。

因此,如果工作表 A 有 33 行填充了数据,我切换到工作表 B 并将第 2 行中的数据向下拖动到 33 以将其与工作表 A 匹配。

用VBA可以做到这一点吗?

我也尝试将它们复制到表 B 中,但它们的顺序不同,所以这对我来说并不是一个真正的解决方案。

我尝试的是:

Private Sub Worksheet_Activate()
Range("A2:N2").Select
Selection.AutoFill Destination:=Range("A2:N" & Lastrow), Type:=xlFillDefault
End Sub

标签: excelvba

解决方案


无需使用AutoFill

逻辑:

  1. 查找工作表 A 中的最后一行
  2. 一次性填写.Formula整个范围内的公式。

代码:

这是你正在尝试的吗?

Option Explicit

Sub Sample()
    Dim wsA As Worksheet
    Dim wsB As Worksheet
    Dim lRow As Long
    
    '~~> Set these to relevant sheets
    Set wsA = Sheet1
    Set wsB = Sheet2
    
    '~~> Find last row in Sheet A
    lRow = wsA.Range("A" & wsA.Rows.Count).End(xlUp).Row
    
    '~~> Update formulas in Sheet B till relevant rows
    wsB.Range("A2:N" & lRow).Formula = wsB.Range("A2:N2").Formula
End Sub

笔记:

您也可能想阅读如何避免在 Excel VBA 中使用 Select


推荐阅读