【问题标题】:Merge & center every 2 cells in a range in VBA在 VBA 范围内每 2 个单元格合并和居中
【发布时间】:2016-10-15 17:31:06
【问题描述】:

我想弄清楚如何合并一列中的每 2 个单元格。不过我觉得我想多了。我的 if then 声明是不必要的,我只是在玩。这是代码:

Dim RgToMerge As String

   For i = 1 To ActiveSheet.Cells(Rows.Count, 3).End(xlUp).row
   RgToMerge = ""
   If Cells(i, 3) = "" Then
   RgToMerge = "$C$" & i & ":$C$" & i + 1
   With range(RgToMerge)
       .Merge
       .HorizontalAlignment = xlCenterAcrossSelection
       .VerticalAlignment = xlCenter

   End With
   Else
   End If
Next I
End sub

【问题讨论】:

  • 不确定“每 2 个单元格”是什么意思。这与您上次提出的问题有何不同?
  • 我希望能够合并 C 列中的每 2 个单元格行,例如 C3:C4、C5:C6、C7:C8 等,而无需输入所有这些内容
  • 尝试将Step 2 添加到For... 的末尾并以For i = 3 ... 开头

标签: vba excel loops merge


【解决方案1】:

取出if-statement 并进行这些细微的更改

Dim RgToMerge As Range


For i = 3 To ActiveSheet.Cells(Rows.Count, 3).End(xlUp).Row Step 2

    Set RgToMerge = Range(Cells(i, 3), Cells(i + 1, 3))
    With RgToMerge
        .Merge
        .HorizontalAlignment = xlCenterAcrossSelection
        .VerticalAlignment = xlCenter
    End With

Next i

第 2 步将遍历每隔一行。第 3 步将每隔三行执行一次,依此类推。

【讨论】:

  • 当我测试它时它工作了。你能给我一个你输入的样本吗?
  • 好的,当我在其中输入一个值时,我发现它可以工作了..因为我正在构建一个模板,是否可以合并每个 2 个单元格,其中还没有值
  • 你可以尝试一下,然后在程序运行后在相关单元格中输入数据,看看它们是否合并。
  • 如果没有数据更改 ActiveSheet.Cells(Rows.Count, 3).End(xlUp).Row 到你需要的任何行数。
猜你喜欢
  • 2014-12-08
  • 1970-01-01
  • 1970-01-01
  • 2018-09-12
  • 2011-10-02
  • 2017-08-08
  • 2012-02-11
  • 1970-01-01
  • 2017-07-24
相关资源
最近更新 更多