【问题标题】:Fill empty cells based on below values if offsets are identical如果偏移量相同,则根据以下值填充空单元格
【发布时间】:2020-08-05 18:18:03
【问题描述】:

我想用以下值填充 B 列上的空单元格,但前提是 A 列上的偏移量相同,并且必须针对数千个不同的名称和值执行此操作。

我有这个,但实际上我需要相反的(例如,如果 A 列上的偏移量相同,则根据以下值填充顶部值)

Sub Fillin()

With Range("B:B").SpecialCells(xlCellTypeBlanks)
          .Formula = "=IF(RC[-1]=R[-1]C[-1],R[-1]C,"""")"
          .Formula = "=IF(RC[+1]=R[-1]C[-1],R[+1]C,"""")"
          
End With
End Sub

例如:

Column A Column B
-----------------

 - BMW     blue
 - Audi    blank (should fill in as red because Audi = Audi on A)
 - Audi    red
 - Audi    green

谢谢!

【问题讨论】:

  • 然后把R[-1]改成R[1]
  • @ScottCraner 谢谢!尽管 B 上的空单元格满足条件,但我尝试了但显示“未找到空单元格”。
  • 如果单元格中有公式,则它们不是空白的。您将需要循环范围并测试= ""
  • @ScottCraner 是的,可见的“空单元格”中有公式我怎样才能达到目标?使用 if 函数?
  • 我首先将其倒退,例如如果 col A 上的偏移量相同,则取上述值,现在我需要反过来,但所谓的“空单元格”中有公式......并且他们是成千上万..

标签: excel vba


【解决方案1】:
Dim c As Range

For Each c in Application.Intersect(ActiveSheet.Columns(2), ActiveSheet.UsedRange).Cells
    if Len(Trim(c.value))=0 and c.offset(0,-1).Value = c.offset(1, -1).Value Then 
        c.value=c.offset(1, 0).value
    end if
Next c

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-29
    • 2023-01-13
    • 1970-01-01
    • 1970-01-01
    • 2019-12-26
    • 1970-01-01
    • 2015-06-04
    相关资源
    最近更新 更多