在同一列中的一组数据之后填充每个空单元格



我是vba的新手,我正在努力解决这个小问题。我还没有找到任何关于这个问题的帖子。

重点是:

我想在一块板的每一个单元格中填充一系列具有特定值的数据。假设我已经在a列中得到了一系列数据,我希望在同一列中,最后一个单元格后面的行填充";a";值(可以变化(用特定值("b"(填充下一个空单元格。

下面是一个我想做什么作为最终结果的例子;

列A
a
a
a
a
a
a
b
b
b
b
b

我不知道我是否正确理解了你的问题,但试试这个:

Sub test()
Dim firstlineb As Range
Dim lastlineEmpty As Range
Dim cel As Range
Set firstlineb = Range("A2").End(xlDown).Offset(1)
Set lastlineEmpty = Range(firstlineb, firstlineb.End(xlDown))
For Each cel In lastlineEmpty.Cells
If cel = "" Then
cel.Value = "b"
Else: Exit Sub
End If
Next cel

End Sub

我想你已经迷上了";。End(xlDown(";,如果你将变量设置为一个范围,那么你可以像使用单元格一样使用它:

Range(firstlineb, firstlineb.End(xlDown))

这样你就不会重复了:

Range("A2",Range("A2").End(xlDown)).End(xlDown).Offset(1).End(xlDown)

注意:我直接在工作表上尝试了vba,而不是在模块中,所以你必须添加"Worsheets("Sheet1"(;在范围之前。

我希望这对你有所帮助。

我们将做几个假设:

  • Columns(1)具有要评估的值,a
  • Columns(2)有标签,所以您可以找到所有数据输入末尾的最后一行,这样您就知道Columns(1)数据需要扩展到哪里,b

我们想找到每个的最后一行(未经解释性注释测试(:

With Sheets(1)
dim lastValueRow as Long
lastValueRow = .Cells(.Rows.Count, 1).End(xlUp).row 'Columns(1) = Columns("A")
dim lastDescriptionRow as Long
lastDescriptionRow = .Cells(.Rows.Count, 2).End(xlUp).row 'Columns(2) = Columns("B")
'Using the above, you can paste a single value over a range, without needing to loop
.Range(.Cells(lastValueRow+1, 1),.Cells(lastDescriptionRow, 1)).Value = "b"
End With

最新更新