select性地合并Excel行并删除原始行

我有一个Microsoft Excel电子表格(Mac 2011)。

  1. 一些行在A,C,D,E,F和G列中有数据。我将调用这些行PARENT行。

  2. 其他行只在列B中有数据。我将称它们为CHILD行。 每个CHILD行实际上是PARENT行上面的一个子集。

  3. 每个PARENT行在其下面有1到20个CHILD行。

  4. 这个模式通常是:父行,下面有几个孩子行,然后是另一个父行,下面有几个孩子行,还有另外一个孩子行,等等。

我在尝试着:

[a]复制每个PARENT行的内容并将它们添加到它下面的CHILD行。

[b]一旦复制,删除原始的父行。

电子表格中有超过40,000行,我不知道如何创build一个macros。

你并不需要一个macros(但是我已经提供了一个macros)

[请注意,这是一个在Windows上的Excel的工作解决scheme – 我没有经验与Mac的Excel,所以不能保证下面的解决scheme或两个解决scheme将为您工作]

手动解决scheme

  1. select列A,C,D和E(如果您先select列A)
  2. 按F5 ….转到特殊并select空白,然后点击“确定”
  3. 在公式栏中,键入= A1其中A1是紧接在步骤2的第一个空白单元格之上的单元格(请参阅下图,此单元格为A1)
  4. 一起按下CtrlEnter键。 您现在在子行中有正确的数据
  5. select列A:E和复制然后select性粘贴为值,将刚刚在子行中input的公式转换为值
  6. select列B
  7. 按F5 ….转到特殊并select空白,然后点击“确定”(见下图)
  8. 删除select的行

第3步第七步

代码解决scheme

Sub Delete() Dim rng1 As Range Dim rng2 As Range On Error Resume Next Set rng1 = Range("A:A,C:E").SpecialCells(xlBlanks) On Error GoTo 0 If rng1 Is Nothing Then Exit Sub rng1.Formula = "=R[-1]C" 'handles two row areas else SpecialCells will force both areas to area1 formulae For Each rng2 In rng1.Areas rng2.Value = rng2.Value Next rng2 On Error Resume Next Set rng1 = Range("B:B").SpecialCells(xlBlanks) On Error GoTo 0 If Not rng1 Is Nothing Then rng1.EntireRow.Delete End Sub