excel - 根据另一张工作表的最后一行向下拖动公式
问题描述
希望可以有人帮帮我 :)
我在工作表 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
解决方案
无需使用AutoFill
逻辑:
- 查找工作表 A 中的最后一行
- 一次性填写
.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
推荐阅读
- matlab - 创建一个 MATLAB 函数来确定客户在购买后应支付的零钱金额
- c - 如何监视 C 模块中的静态数据?
- c - 如何修复“错误:控制到达非无效函数的结尾”?
- gitlab - 在 gitlab 中将 cucumber.options 作为环境变量传递
- mysql - 计算 MySQL 中多个外部表的引用总数
- python - 获取当前时间之前的最近时间,该时间可被 5 整除
- apostrophe-cms - 从爬虫中排除特定区域
- swift - “RTCSdpTypeAnswer”和“RTCSdpTypePrAnswer”有什么区别?
- virtualbox - 如何解决 VirtualBox 桥接适配器问题?
- python - 如何使一定长度的单词翻转?