对于这个noobish问题感到抱歉,但我是新手,我没有太多的编程背景。我自己尝试了几个小时,但我还不够了解。我检查了this和this,但我无法弄清楚如何修改它。
示例数据:
第一部分是我如何获取文件,第二部分是我想要的样子。
前3列在列的某处有值。我需要找到这些值,复制它们,然后将它们粘贴到下一个值,然后一直重复到范围的底部。有时每列有很多值,有时只有1.数据的最后一行可以由第4列确定。基本上我只需要填写所有空白单元格。注意:第2行并不总是包含第一个值。
这是我到目前为止(更新):
Sub FindFillIn()
Dim columnValues As Range, i As Long
Dim cellstart As Integer
Dim cellend As Integer
cellstart = 2
cellend = ActiveSheet.Range("E" & ActiveSheet.Rows.Count).End(xlUp).Row
i = 1
For i = cellstart To cellend
If Cells(i, 1).Value = "" Then
Cells(i, 1).Value = Cells(i - 1, 1).Value
End If
Next i
End Sub
更新:
它似乎在第一列上正确运行,但它只能执行一列。如何让它在第1列,第2列和第3列上运行?
答案 0 :(得分:0)
Sub FillInBlanks()
Dim rng As Range
On Error Resume Next
With ActiveSheet
Set rng = .Range(.Range("A2"), _
.Cells(Rows.Count, 4).End(xlUp)).SpecialCells(xlCellTypeBlanks)
End With
On Error GoTo 0
If Not rng Is Nothing Then
With rng
.FormulaR1C1 = "=R[-1]C"
.Value = .Value
End With
End If
End Sub
答案 1 :(得分:0)
不使用VB就很容易。 选择第1列的数据,直到要填充数据的最后一个单元格。 按CTRL + G并单击特殊。 选择空白,然后按确定。 现在,在公式栏上,键入“=”并选择(按Ctrl +单击)数据开始的第一个单元格,然后按Control + Enter。
您可以将此过程记录到宏中,然后查看代码。