【问题标题】:VBA replace value with cell above until blank and loopVBA用上面的单元格替换值直到空白并循环
【发布时间】:2016-11-27 10:31:42
【问题描述】:

我希望根据上面的单元格向下填充值直到空白单元格,这应该一直持续到没有更多内容为止,例如:参考下表,将顶部值向下复制直到空白,因此,'小msa' 将向下复制到 'inter' 并停止,'petty ksm' 将向下复制到 'general','comp' 将向下复制到 'motor'。

列:A
琐碎的msa

小知识
福利

预付款
一般

补偿
旅行
马达

编辑:这是一个大约 15,000 行的长列表

谢谢

【问题讨论】:

  • 添加更多细节(例如:在最后一个空白单元格之前要写下的值来自哪里?)以及您的编码尝试以及遇到的问题
  • 只需录制一个宏并查看生成的 VBA 代码!

标签: excel vba autofill


【解决方案1】:

选择第一个你有值'petty msa'的单元格然后 - 1. 按 ctrl+shift+down - 选择要复制的范围 2. 按 ctrd+down - 复制值 现在您已将“petty msa”复制到包含“inter”的单元格

对每个范围重复此过程。

【讨论】:

  • 谢谢,但这是一个很长的列表,有将近 15,000 行,会很耗时
【解决方案2】:

根据您的示例,鉴于您的数据“结构”,应该这样做:

Option Explicit

Sub main()
    Dim area As Range

    With Worksheets("filldown").Columns("A").SpecialCells(xlCellTypeConstants) '<--| change "filldown" to your actual worksheet name and "A" to actual index of column with data to be "filled down"
        For Each area In .Areas
            area.Value = area(1)
        Next area
    End With
End Sub

【讨论】:

    【解决方案3】:

    在 A1 中插入一个空白行。在单元格 B2 中粘贴下面的公式并将其复制下来。

    = if(A1="",A2,B1)
    

    这应该可以工作

    【讨论】:

      猜你喜欢
      • 2015-10-07
      • 1970-01-01
      • 2021-10-31
      • 2017-07-28
      • 1970-01-01
      • 2022-01-26
      • 1970-01-01
      • 1970-01-01
      • 2022-11-13
      相关资源
      最近更新 更多