将excel单元格数据复制到列中最近的填充单元格

时间:2012-02-26 04:16:30

标签: excel copy cell

我是Excel的新手,我面临一些问题。

我有一张Excel表格,我必须将其导入我的另一个程序。请考虑以下格式:

Heading1 |  Sub-heading1  |   Sub-Sub-heading1 
         |                |   Sub-Sub-heading2 
         |                |   Sub-Sub-heading3 
         |                |   Sub-Sub-heading4 
         |  Sub-heading2  |   Sub-Sub-heading1 
         |                |   Sub-Sub-heading2 
         |                |   Sub-Sub-heading3 
         |                |   Sub-Sub-heading4 
Heading2 |  Sub-heading1  |   Sub-Sub-heading1
and so on..

问题是,对于我的导入目的,我不能留下任何单元格空白。所以,我想要一些论坛,Heading1可以将Heading2复制到{{1}}以上的所有单元格,类似于第2列,以及之后出现在所有行中的所有数据。

这将是很有帮助的,因为它会消除我的障碍。

1 个答案:

答案 0 :(得分:0)

使用具有xlBlanks集合的SpecialCells可以手动(无代码)或以编程方式(简单代码)快速完成此操作

<强> 1。手动

  • 选择前两列中的单元格
  • 按F5 ...特殊...空白
  • 在公式栏中键入= A1,其中A1是新选择的空白
  • 上方的第一个单元格
  • 按住Ctrl键并按Enter键,立即在所有空白单元格中输入此公式

这写好here,包括如何将这些公式转换为值

的说明

<强> 2。 VBA

提供了三个样本here

第二个代码的这个修改版本适用于列A:B(看起来是您的数据布局)

Sub FillColBlanks_Offset()
'by Rick Rothstein  2009-10-24
'fill blank cells in column with value above
'http://www.contextures.com/xlDataEntry02.html
'modified by brettdj
Dim Area As Range, LastRow As Long
On Error Resume Next
With Columns("A:B")
    LastRow = .Find(What:="*", SearchOrder:=xlRows, _
                    SearchDirection:=xlPrevious, _
                    LookIn:=xlFormulas).Row
    For Each Area In .Resize(LastRow). _
        SpecialCells(xlCellTypeBlanks).Areas
        Area.Value = Area(1).Offset(-1).Value
    Next
End With
End Sub