合并细胞数量可变的2个细胞

时间:2018-03-22 09:34:40

标签: vba excel-vba excel

我必须合并2个单元格,每次运行时范围可能会有所不同。我正在尝试下面的代码,但代码有一些错误,我无法识别。对于固定范围,它的工作正常,但对于变量,它显示错误。行号是需要合并的单元号,每次运行时都会有所不同:

Range("D" & line_no & ":" "E" & line_no & ).Select
Range("D" & line_no).Activate
With Selection
    .VerticalAlignment = xlCenter
    .HorizontalAlignment = xlCenter
    .WrapText = False
    .Orientation = 0
    .AddIndent = False
    .ShrinkToFit = False
    .ReadingOrder = xlContext
    .MergeCells = True
End With

2 个答案:

答案 0 :(得分:3)

我会尽力摆脱Select。你可以这样做:

With Range("D" & line_no & ":" & "E" & line_no)
    .VerticalAlignment = xlCenter
    .HorizontalAlignment = xlCenter
    .WrapText = False
    .Orientation = 0
    .AddIndent = False
    .ShrinkToFit = False
    .ReadingOrder = xlContext
    .MergeCells = True
End With

答案 1 :(得分:1)

您的问题在于字符串连接。评论涵盖了那一部分。

如果在整个程序中使用此范围,我建议在变量中使用此范围:

定义指向所需范围的字符串:Dim rng As String: rng = "D" & line_no & ":E" & line_no,然后像这样使用它:

Range(rng).Select
Range(rng).Activate

OR

在变量中定义范围和存储范围,而不是字符串“

Dim rng As Range
Set rng = Range("D" & line_no & ":E" & line_no)
rng.Select
rng.Activate
'...