无需知晓行号,在VBA中将活动行值应用于公式
VBA动态设置Left公式并支持向下填充的解决方案
问题场景
我编写了一个VBA宏,通过Do Until循环从E2开始处理前若干行:
- 循环内的行使用公式
=Left($F2,8) - 循环结束后,活动单元格(示例为第10行)需要设置公式
=Left(F[当前活动行号],4),且该公式需支持向下填充,不能绑定固定单元格,要自动识别行号延续。
尝试的代码
Sub Adding_Columns() Dim a As Integer Dim x As Integer Dim y As Integer Dim z As Integer Dim count As Long Application.ScreenUpdating = False a = 0 x = 1 y = 3 z = 2 Sheets(x).Select Range("A1").EntireColumn.Insert Range("A2").Select ActiveCell.Formula = "=Left($B2,4)" Range("D1").EntireColumn.Insert Range("D1").EntireColumn.Insert count = Application.CountA(Range("F2:F250")) - Application.CountIfs(Range("F2:F250"), "*-*") Range("E2").Select Do Until a = count ActiveCell.Formula = "=Left($F2,8)" ActiveCell.Offset(1, 0).Select a = a + 1 Loop ActiveCell.Formula = "=Left(" &.Offset(1,0)",4)" End Sub
解决方法
通过拼接活动单元格的Row属性动态生成公式,既避免了固定单元格绑定,又能支持向下填充时自动识别行号:
ActiveCell.Formula = "=Left($F" & ActiveCell.Row & ",4)"
内容的提问来源于stack exchange,提问作者SneakyKeys1025
相关产品推荐
相关产品推荐

