Dzwebs.Net

撰写电脑技术杂文十余年

Excel空行自动填充上一单元格的内容

Admin | 2010-3-30 18:59:21 | 被阅次数 | 18608

温馨提示!

如果未能解决您的问题,请点击搜索;登陆可复制文章,点击登陆

  如何让Excel自动填充上一行的内容到下面的一个或多个空行中?

  针对这样的问题,您可以使用复制粘贴的办法;但是,本人遇到的问题是,数据量有接近一万行,并且,部分行有内容,部分行去没有内容。

  那么,如此多变的数据,我们如何才能做到,一次性让空的单元格,都分别填充其上方有数据的单元格内容呢?

  我首先VBA,下面,我们先看下表吧!

  认真瞧一瞧,AB两列,间断的或无规律的出现,部分单元格有内容,部分单元格是没有内容的,并且,整个表格的数据量,接近一万行。现在,我们要做的就是,如何让这么多的空单元格,自动填充上其上方有内容的数据呢?

  我们可以这样来做,在表格中增加一个按钮,如下图!假设增加一个标题为“自动填充AB列空的”。

  只要一点击该功能按钮,那么,AB两列所有的空的单元格则自动填上该填写的内容。

  好了,界面就说到这个地方,下面我们直接参阅代码吧!按钮的代码如下:

  Private Sub CommandButton1_Click()
  Dim MyOldValue1 As String
  Dim MyOldValue2 As String
  For i = 1 To Worksheets.Count
      MyOldValue1 = Trim(Worksheets(i).Cells(2, 1).Value)
      MyOldValue2 = Trim(Worksheets(i).Cells(2, 2).Value)
  Next i
  For i = 1 To Worksheets.Count
    For j = 3 To Sheets(i).UsedRange.Rows.Count
        If (Trim(Worksheets(i).Cells(j, 1).Value) = "") Then
           Worksheets(i).Cells(j, 1).Value = MyOldValue1
        Else
           MyOldValue1 = Worksheets(i).Cells(j, 1).Value
        End If
        If (Trim(Worksheets(i).Cells(j, 2).Value) = "") Then
           Worksheets(i).Cells(j, 2).Value = MyOldValue2
        Else
           MyOldValue2 = Worksheets(i).Cells(j, 2).Value
        End If
    Next j
  Next i
  End Sub

  部分代码解释:

  For i = 1 To Worksheets.Count'此自动填充功能,对工作薄中的所有工作表都有效。

  For j = 3 To Sheets(i).UsedRange.Rows.Count'针对每个工作表实现自动填充。


该杂文来自: Excel杂文

上一篇:Excel数据打印区域之水平垂直居中、打印行号列标

下一篇:Excel2010中如何安装、激活、删除加载项

网站备案号:

网站备案号:滇ICP备11001339号-7

版权属性:

Copyright 2007-2021-forever Inc. all Rights Reserved.

联系方式:

Email:dzwebs@126.com QQ:83539231 访问统计