2

我需要去做:

Excel 自动填充

我在 Excel 中使用正常的自动填充功能(双击单元格侧面的点)将内容复制到子单元格,所以在这种情况下,单击单元格 A1 中的点将执行此操作:

在此处输入图像描述

我需要一个脚本,它将在整个列中重复该过程,直到相邻单元格中没有更多值。

4

2 回答 2

6

您可以通过键盘执行此操作...

  • 选择 A 列
  • 选择首页 | 查找和选择 | Goto Special... 空白OK
  • 按 [=] [向上箭头] [ctrl+Enter]

要删除公式,请选择 A 列,复制并粘贴特殊值。

在此处输入图像描述

于 2012-06-29T15:42:55.450 回答
2

大概这就是你要找的东西:

Option Explicit
Sub FillInTheBlanks()
    Dim StartCell As Range, EndCell As Range
    Set StartCell = ActiveCell
    Set EndCell = ActiveSheet.Cells(ActiveSheet.UsedRange.Rows.Count + 1, StartCell.Offset(0, 1).Column).End(xlUp)

    Dim currentText As String
    Dim i As Long
    For i = StartCell.Row To EndCell.Row
        If Not IsEmpty(ActiveSheet.Cells(i, StartCell.Row)) Then
            currentText = ActiveSheet.Cells(i, StartCell.Row).Text
        Else
            ActiveSheet.Cells(i, StartCell.Row).Value = currentText
        End If
    Next i
End Sub

该代码执行以下操作:

在此处输入图像描述


如果您真的想要屏幕截图中的内容,那么您需要这样做:

Option Explicit
Sub FillInTheBlanks()
    Dim StartCell As Range, EndCell As Range, NextCell As Range
    Set StartCell = ActiveCell
    Set EndCell = Cells(ActiveSheet.UsedRange.Rows.Count + 1, StartCell.Offset(0, 1).Column).End(xlUp)

    While StartCell.Row < EndCell.Row
        Set NextCell = StartCell.Offset(1, 1).End(xlDown).Offset(0, -1)
        StartCell.AutoFill Destination:=ActiveSheet.Range(StartCell, NextCell), Type:=xlFillDefault
        Set StartCell = NextCell.Offset(1, 0)
    Wend
End Sub

这样做:

在此处输入图像描述

于 2012-06-29T13:08:53.923 回答