Excel VBA实现:将A4:AW4公式行填充至A1指定行
动态填充公式的VBA宏修改方案
修改后的代码
Sub MJE_Fill() Dim ws As Worksheet Dim lastRow As Long ' 指定目标工作表 Set ws = ThisWorkbook.Sheets("MJE Upload") ' 获取A1单元格的行号值 lastRow = ws.Range("A1").Value ' 检查行号有效性,避免无效范围报错 If lastRow >= 4 Then ' 动态构造填充范围并执行自动填充 ws.Range("A4:AW4").AutoFill Destination:=ws.Range("A4:AW" & lastRow), Type:=xlFillDefault End If End Sub
关键修改点说明
- 绑定目标工作表:用
ThisWorkbook.Sheets("MJE Upload")明确指定操作的工作表,避免因当前激活表变化导致错误 - 动态获取结束行号:通过
ws.Range("A1").Value读取A1单元格的数值作为填充的最后一行,替代原代码中硬编码的1097 - 有效性检查:增加
If lastRow >=4判断,防止A1值小于4时出现填充范围无效的报错(比如A1值为3时,填充范围会比源范围小) - 动态拼接范围字符串:用
"A4:AW" & lastRow把行号数值和列范围拼接成完整的目标区域地址
内容的提问来源于stack exchange,提问作者William
相关产品推荐
相关产品推荐

