【问题标题】:Merge cells using cells() function使用 cells() 函数合并单元格
【发布时间】:2021-09-26 00:47:46
【问题描述】:

我需要垂直合并一系列单元格。 excel [Merge-Across] 中有一个内置选项,但这会合并一个范围内的列(水平)。我需要相反,我需要合并行(垂直)。

我已经到了代码的中间部分。我现在被困在一个地方。我需要将合并功能与单元格功能一起使用。我写了一个 for 循环来合并行(垂直)。大约有 18 列要合并。

如果是通过cells() 可以轻松完成。

现在可用的代码是:Range("A1:C1").Merge

我不知道如何增加 forloop 中的列。

如果有人能解决这个问题,那将非常有帮助。

提前致谢。

【问题讨论】:

  • 你到底想合并什么?您可以在单行上创建一个范围变量,并在其上使用 for each 循环来增加列。或者,如果您想要单元格,只需使用 Range(Cells(1, 1), Cells(1, 3)).Merge 类型的东西。虽然,就像你的范围一样,是水平的。
  • 通过调整大小来扩展单元格,例如 col 1 rows 1 to 10 Cells(1, 1).Resize(10).Merge
  • 那么,除了“A1:C1”之外,您还喜欢合并什么? “D1:F1”、“G1:I1”等等?还是每 18 列的一些垂直范围?
  • 我正在尝试合并 F4:F30 ; G4:G30等
  • CDP1802,我试过你的方法。但是有没有办法使用变量而不是常量来调整大小?

标签: excel vba merge


【解决方案1】:

你可以像这样垂直合并单元格

Dim c As Integer

For c = 6 To 9   'columns F .. I
    Range(Cells(7, c), Cells(10, c)).Merge
Next c

结果:F7..F10 被合并,G7..G10、H7..H10 和 I7..I10 也是如此。

【讨论】:

    【解决方案2】:

    那么,请尝试下一个代码:

      Dim i As Long
      For i = 6 To 24
        cells(4, i).Resize(27).merge
      Next i
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      • 2011-09-04
      • 2011-01-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多