【问题标题】:Loop though merged cells and border "down"循环通过合并的单元格和边框“向下”
【发布时间】:2020-01-23 14:44:30
【问题描述】:

这些是我合并的单元格

我想遍历这些合并的单元格,找到每个合并单元格的结尾,然后 在左侧用点(xlDots)进行边框直到 ROW6

这将是我的输出

这是我到目前为止所尝试的

Dim rng As Range

Set rng = Range("A1:I6")

With rng.Borders
    .LineStyle = xlDot
    .Weight = xlThin
End With

但它与我的每个单元格相邻,我可以在 for 循环中给出 STEP 2 吗?

【问题讨论】:

标签: excel vba


【解决方案1】:

作为替代方案,您不需要 VBA。您可以使用条件格式:

规则:

=AND(A$3<>"",B$3="",C$3="")

适用于范围:

=$C$4:$I$6

当然,只需根据需要选择格式。

【讨论】:

  • 赞成避免使用 VBA,但我不确定这些合并的单元格是否总是像 OP 提到的那样只有 3 宽:" find the end of every merged cell "
  • 是的,我通过条件格式实现了它,但我想通过 VBA 学习它,因为我正在制作
【解决方案2】:

我的建议是基于here的一个技巧

Sub Test()

Dim rng As Range, cl As Range
With Sheet1 'Change appropriately
    Set rng = Intersect(.Cells.SpecialCells(2), .Cells.SpecialCells(4))
    For Each cl In rng
        If cl.MergeArea.Row = 3 Then
            cl.MergeArea.Offset(1).Resize(3, cl.MergeArea.Columns.Count).Borders(xlEdgeLeft).LineStyle = xlDot
        End If
    Next cl
End With

End Sub
  • .Intersect 通过使用.SpecialCells 从属于合并区域的所有单元格中创建一个范围。我使用了constants and blanks 的组合(分别为索引 2 和 4),但如果您的值是公式的结果,您可以将其更改为 -4123 和 4。

  • 我确保这些单元格是从第 3 行开始的 .MergeArea 的一部分。

  • 然后只需 .Offset 1 行和 .Resize 到第 6 行的范围对象和合并区域的实际宽度(使用 Columns.Count),因为您可能无法 100% 确定宽度这些合并区域的列数。

  • 您可以将xlEdgeLeft 边框的线型设置为xlDot


显然,如果您的合并单元格范围仅涉及 A-I 列,它会变得更加简单,而从这个意义上说,此解决方案更具动态性。

【讨论】:

  • 我就知道你会回答!永远完美诶! jvdV 你是大师!
  • 哈,绝对不是高手和完美。只是享受解决问题。很高兴这解决了你的问题。享受。 =)
【解决方案3】:

这是@JvdV 答案的变体。

For Each cel In ThisWorkbook.Sheets("Sheet1").Range("A3:M3") 'change sheet as needed
    If cel.MergeCells = True Then
        With cel.MergeArea.Offset(1).Resize(3).Borders(xlEdgeLeft)
            .LineStyle = xlDash
        End With
    End If
Next cel

【讨论】:

  • 其实@ChangeWorld,如果你一直只对Range("A3:M3")感兴趣,这可能是一个更快的例程。
  • @Gmalc,您可能也需要考虑指定您的工作表,否则比我的 +1 更短的例程 :)
  • @JvdV,通常会这样做,但只是想展示我正在玩的变化,我很高兴注意到我们在同一条轨道上。
  • 根据@JvdV 建议更新
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-09
  • 2018-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多