添加过滤器时,基于其他列的自动填充列值失败

哈利04

我已经启用了宏的工作表时,在那里我填写的单元列C1C2C3等相应的列值ID,都对应于特定的细胞ID都充满了在同一个值C1C2等等而且,当我删除中一个单元格的值Cx,它会自动从 Completed 中与该值对应的所有单元格中删除ID

例如。在下面的数据,我想的空白单元格(__)自动填充有Y在列小号C1C2并且C3当我在类型YS IN的其他细胞。

Role      ID         C1     C2    C3         ....
 A         1                 Y    
 A         2          Y            Y
 A         5          Y      Y
 A         8          Y
 B         2          __           __ 
 B         8          __
 B        10                       Y
 C        1                  __
 C        10                       __

为此,我使用了 @VBasic2008在这里发布的答案感谢@VBasic2008!:)

这种方法对我来说效果很好。但是,当我向Role添加过滤器以仅过滤具有 RoleA和 的行时B,我遇到了一个错误并且该方法无法按预期工作。谁能告诉我这是为什么,以及如何解决?

编辑:稍微更改了模拟数据和解释以更好地描述我的要求。

ENIAC

我建议简单地迭代每个 ID 单元格,直到找到该行中的空单元格。

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim ID As Long, completed As Variant, r As Long
  Application.EnableEvents = False
  If Sheet1.Cells(1, Target.Column).Value = "Completed" Then
    ID = Target.Offset(0, -1).Value
    completed = Target.Value
    r = 2
    Do Until Sheet1.Range("B" & r).Value = ""
      If Sheet1.Range("B" & r).Value = ID Then
        Sheet1.Range("C" & r).Value = completed
      End If
      r = r + 1
    Loop
  End If
  Application.EnableEvents = True
End Sub

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章