我正在尝试合并某些单元格。但是我无法在同一行中的合并单元格之后引用下一个可用单元格。
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
答案 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