【发布时间】:2017-09-24 04:11:16
【问题描述】:
我正在尝试使用 VBA 将行中的所有空白单元格填充为左侧的值,但我只想填充行中第一个和最后一个值之间的空白单元格(不包括第 1 行和A 列,它们是标识符)。
我一直在努力让循环在到达具有值的最后一列时停止(因为这会随着每一行而变化),而不是一直运行到工作表上的最后一列。
最初这被标记为重复 (Autofill when there are blank values),但这并不能解决上述问题。这一直持续到工作表结束。如下图所示,当达到最后一个值时,填充应该停止。
我正在寻找一种解决方案,可以让我一次对整个工作表执行此操作,即使数据在整个工作表的不同列中结束。有 1000 多行,因此为每一行运行可能会非常乏味。
我一直在使用此代码来填充数据(不包括第一行和第一列)。但这是我不确定如何让它停在行中的最后一个值的地方。
Sub test()
With ThisWorkbook.Sheets("Sheet1").Range("A:A")
With Range(.Cells(2, 2), .Cells(.Rows.Count, 36).End(xlUp))
With .Offset(0, 1)
.Value = .Value
On Error Resume Next
.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=RC[-1]&"""""
On Error GoTo 0
.Value = .Value
End With
End With
End With
End Sub
在此先感谢大家的帮助!
【问题讨论】:
-
I am attempting to use VBA请使用编辑在原始帖子中包含尝试的代码。 -
@Jeeped 不是完全重复的,因为每行的自动填充结束都不同
-
@Slai - 完全重复 一词具有误导性。原文应该解决了标记为重复的问题的基本问题,仅此而已。如果添加一个循环来遍历行并确定具有值的最后一列会出现另一个问题,那么它是一个次要问题,值得提出自己的问题。