【问题标题】:If a row is empty, how do I copy/paste data from the row below it to populate the empty row?如果一行为空,如何从其下方的行复制/粘贴数据以填充空行?
【发布时间】:2019-09-02 12:13:49
【问题描述】:

我有一个包含许多空白行的电子表格,我需要从每个空白行下方的单元格中提取特定数据以填充空白行。我只是在 VBA 方面还不够好,无法弄清楚如何执行这组复杂的步骤,所以提前感谢您,并向不喜欢如何解决这些问题的开发人员表示歉意。

我已经分解了我需要的步骤。

  1. 判断行是否为空。
  2. 如果为 true,则从空行下方的行的 A 列复制文本。
  3. 将文本粘贴到空行的 A 列中。
  4. 将文本的最后三位更改为“XXX”。
  5. 继续直到电子表格结束。

编辑:当前的单元格:

我希望它们看起来像什么:

我正在尝试对每个集合都执行此操作,但可能有 2、3、4 或更多行组,其上方有一个空白行。所以 VBA 需要包含该组中的所有行。

【问题讨论】:

  • 如果有两个相邻的空行,期望的结果是什么?
  • 在这些行下方的列中还有其他数据,我将应用相同的脚本,但输入不同。
  • 换句话说,整行都是空的,我需要使用从紧挨着空行中的单元格解析的数据填充特定单元格。在某些情况下添加标点符号或替换字符。我知道这是一个非常复杂的功能......
  • 我明白,我想问的是,如果您有两行彼此跟随的 为空,会发生什么情况。在空单元格中复制空单元格将导致空单元格。 A good MCVE is always usefuledit your question 提供样本数据和预期结果可能是值得的
  • 如果两个空行相互跟随,则脚本完成,应该停止。

标签: excel vba


【解决方案1】:

这听起来像你想要的。如果您的数字是数字,您需要在尝试取出数字之前将它们转换为文本。

Sub dostuff()

For ir = 1 To 10000

   If (Cells(ir, 1).value = "" And Cells(ir + 1, 1).value = "") Then _
      Exit For 

   If (Cells(ir, 1).value = "") Then _
      Cells(ir, 1).value = _ 
          Mid(Format(Cells(ir + 1, 1).value,"00000000"),1,5) & "XXX"

 Next ir


 End Sub

【讨论】:

    猜你喜欢
    • 2019-12-21
    • 2020-11-06
    • 1970-01-01
    • 2022-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多