如何在合并列连续后引用单元格?

时间:2019-05-09 16:08:28

标签: excel vba

我正在尝试合并某些单元格。但是我无法在同一行中的合并单元格之后引用下一个可用单元格。

Server 1
         Socket 1  VM1  10
                   VM2  4
         Socket 2  VM1  5
                   VM2  6

因此,我需要在1行中为Socket 1 VM1合并10个单元格。之后,我要为VM2合并4个单元。然后5个单元用于Socket 2 VM1,然后6个单元用于VM2。

我的代码仅在第一次迭代后失败。也就是说,我只能合并前10个单元格。我无法再将VM2的同一行中的单元格合并。


last = ThisWorkbook.Sheets("VIM 1").Cells(Rows.count, "A").End(xlUp).Row

j = 1       'column index
lcol = 2    'last filled column

For i = 2 To last

    If InStr(1, ThisWorkbook.Sheets("VIM 1").Cells(i, j).Text, “Server”, 1) Then

        If InStr(1, ThisWorkbook.Sheets("VIM 1").Cells(i + 1, 2).Text, “Socket1”, 1) Or ThisWorkbook.Sheets("VIM 1").Cells(i + 1, 2).Value = "" Then

            count = count + 1


            For l = 1 To count


                 pcpu = ThisWorkbook.Sheets("VIM 1").Cells(i + 1, 4).Value / 2

                 ThisWorkbook.Sheets("VNF Placement").Range(Cells(11, lcol), Cells(11, pcpu + 1)).Merge

                 ThisWorkbook.Sheets("VNF Placement").Cells(11, lcol).Value = ThisWorkbook.Sheets("VIM 1").Cells(i + 1, 3).Value

                 ThisWorkbook.Sheets("VNF Placement").Cells(11, lcol).Interior.ColorIndex = 1 + i

                 lcol = Cells(11, Columns.count).MergeArea.Columns.count + 1


            Next l
        End If

      End If
    Next i


1 个答案:

答案 0 :(得分:0)

在此示例中,x将保留合并范围内的列数,因此您只需添加x + 1即可获得所需的列:

Sub Test()

    Dim x As Long

    x = Range("A1").MergeArea.Columns.Count 'columns
    x = Range("A1").MergeArea.Rows.Count 'Also for rows

End Sub