【问题标题】:Merging Cells in EXCEL VBA when ONLY cell reference numbers are available当只有单元格参考号可用时在 EXCEL VBA 中合并单元格
【发布时间】:2017-10-07 19:06:57
【问题描述】:

我之前使用过类似下面的 vba 代码在 EXCEL 中以编程方式合并 2 个单元格:

Range("B2:B3").Merge

但是,我现在只能使用相对单元格引用,而不是像上面那样的绝对单元格引用情况。例如,我有变量 Row0 和 Col0 来计算来自特定参考单元格的行数和列数。因此,如果我想将参考单元格(可能因应用程序而异)与其右侧的单元格合并,我希望使用类似的东西:

Cell1 = Cells(Row0, Col0).Address
Cell2 = Cells(Row0, Col0 + 1).Address

Range(Cell1:Cell2).Merge

但是,这会导致错误,因为显然需要引号,但是,当添加引号时,变量 Cell1 和 Cell2 不会被解析。

Range("Cell1:Cell2").Merge

感谢任何帮助。

谢谢,

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    你根本不需要使用地址:

    Set Cell1 = Cells(Row0, Col0)
    Set Cell2 = Cells(Row0, Col0 + 1)
    
    Range(Cell1, Cell2).Merge
    

    或者只是:

    Cells(Row0, Col0).Resize(1,2).Merge
    

    【讨论】:

    • 谢谢你们!这很有帮助!
    • Worksheets("Sheet1").Range(Cells(Row0, Col0), Cells(Row0, Col0 + 1)).Merge
    • 一个后续问题,不过:我也有类似的代码用于此语句:
    • Range(Cells(Row0, Col0)).Font.Bold = True
    • 我收到“运行时错误 1004 - 方法 - 对象范围'_Global' 失败
    【解决方案2】:

    在你的例子中改变

        Range(Cell1:Cell2).Merge
    

        Range(cell1 & ":" & cell2).Merge
    

    正如你所拥有的那样,你试图在范围内传递一个字符串,但 : 没有被引号包围。

    用引号括起来,并用& 连接单元格1 和单元格2,它应该可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-10
      • 1970-01-01
      • 2013-11-23
      • 2017-11-11
      • 2021-06-14
      • 1970-01-01
      • 2013-07-10
      • 1970-01-01
      相关资源
      最近更新 更多