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

我是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上方的所有单元格的Heading2 ,对于列2和所有行中出现的所有数据都是类似的。

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

这可以通过使用具有xlBlanks集合的SpecialCells手动(无代码)或编程(简单代码)非常快速地完成

1.手动

  • select前两列中的单元格
  • 按F5 …特殊…空白
  • 在公式栏中input= A1,其中A1是新选中的空白上方的第一个单元格
  • 按住Ctrl键,然后按Enter在所有空白单元格中一次input此公式

这里写得很好,包括如何将这些公式转换为值的说明

2. VBA

这里提供了三个样本

第二个代码的这个修改后的版本可以在列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