【问题标题】:Insert empty rows to columns to match empty rows in adjacent column将空行插入列以匹配相邻列中的空行
【发布时间】:2015-06-23 01:37:08
【问题描述】:

我正在尝试将三个相邻列中的数据与第四列中的数据进行匹配。

这是我的数据当前的组织方式:

ROW   A     B     C
----------------------
1    Cat   Car    Red
2    Dog   Bike   Blue
3    Bird  Car    
4    Bear  Car    Blue
5    Fish  Bike   Red  
6    Cow   Car    Red 

(A列的值是唯一的;B和C列的值是重复值)

这就是我需要的组织方式:

ROW   A     B     C
----------------------
1    Cat   Car    Red
2    Dog   Bike   Blue
3
4    Bird  Car    Blue
5    Bear  Car    Red
6    Fish  Bike   Red

基本上,我需要 A 和 B 列来查看第 3 行中的 C 列是空的,并在 A3 和 B3 中插入​​空白单元格,以便下面的每个 A 和 B 值都向下移动一个。

电子表格中有许多需要插入的内容。其中一些会像上面的示例一样是单独的插入,但其他可能是连续 3、4、5、10 次插入。

我可以使用公式或某种自动化流程来实现这一点吗?

谢谢!

【问题讨论】:

  • 您的意思是如果[C3]为空则清除[A3]和[B3]内容?如果是这样,可能需要一个宏。
  • 否;如果 C3 为空,则将 A3 和 B3 向下推到 A4 和 B4 位置。
  • 空白行需要在里面吗?只需从 C 列中删除空白单元格并将数据向上拉,而不是将 A 和 B 中的数据向下推
  • 丹,是的,空白行确实需要存在。

标签: excel excel-formula excel-2010 formula


【解决方案1】:

从您发布的示例中,您想在 C 为空白时将 A 和 B 向下推?

Sub PushDown()
    Dim X As Long
    For X = 1 To Range("A" & Rows.Count).End(xlUp).Row
        If IsEmpty(Range("C" & X)) Then Range("A" & X & ":B" & X).Insert xlDown
    Next
End Sub

【讨论】:

  • 谢谢,这个宏在单次插入时有效,但是当同时有两次插入时,在相邻单元格的上下插入空白单元格。例如,如果我的示例中的单元格 C2 也是空白的,则结果列 A 将是 Cat [blank] Dog [blank] Bird。期望的结果是 Cat [blank] [blank] Dog Bird。
  • 如果它使事情变得更容易,我不介意单独对每一列进行宏处理。所以...比较 A 列与 C 列,然后将 B 列与 C 列进行比较。
  • 空白行需要在里面吗?仅从 C 列中删除空白单元格并将数据向上拉而不是向下推 A 和 B 中的数据会简单得多
  • 丹,再次感谢您的帮助。我让你的脚本在一个简单的测试电子表格上工作,但是当我尝试将它应用到我的生产电子表格时,宏没有运行。这显示了我的生产电子表格 (snag.gy/poqSJ.jpg) 的屏幕截图,这显示了我在(成功)运行宏 (snag.gy/ezfXw.jpg) 之前的测试工作表。关于什么会导致它在生产表上失败的任何想法?如果有帮助,我可以提供生产表。
  • 可能单元格不是真正为空的,把这个 If IsEmpty(Range("C" & X)) 改成这个 If trim(Range("C" & X)) = ""
【解决方案2】:
Sub clearContent()
Dim lastrow As Integer

lastrow = Range("D65536").End(xlUp).Row

For i = 2 To lastrow
    If Cells(i, 4) = "" Then
        Range(Cells(i, 2), Cells(i, 3)).ClearContents
    End If
Next i
End Sub

【讨论】:

  • 附带说明,在 .End 中使用 rows.count 而不是 65536,在 VBA 中使用 Long 而不是整数 :)。请参阅我对这个线程的回答和我们都回答的 InsertRowsByQTY 一个示例:)
  • 很高兴认识你!你说的对 !是否下推不清楚内容。
  • 各位好伙伴,也很高兴认识你,我确实喜欢你在另一个上使用的填充想法:)
猜你喜欢
  • 2014-08-21
  • 1970-01-01
  • 2017-11-25
  • 2016-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-15
  • 1970-01-01
相关资源
最近更新 更多