合并VBA中的单元格

时间:2015-03-20 07:33:10

标签: excel vba excel-vba

Sub colorcells()
    Dim cell As Range
    For Each cell In Range("Range1")
        If InStr(cell.Value, "Person1") > 0 Then
            cell.Interior.Color = XlRgbColor.rgbSienna
        ElseIf InStr(cell.Value, "") > 0 Then
            cell.Interior.Color = XlRgbColor.rgbLightGrey
        ElseIf InStr(cell.Value, "") = 0 Then
            cell.Interior.Color = XlRgbColor.rgbWhite
        End If
    Next cell
End Sub

您好, 如果没有颜色,代码中的最后一个函数会清除我的单元格。我想添加合并单元格(因为我使用多个彩色单元格)并将所有边框应用于单元格。 我尝试了一些,但它没有工作,可能是因为我无法使用Dim cell As Range来合并它们。 谢谢您的帮助。


感谢您的回答。我无法解释清楚。我希望在此之后合并单元格

ElseIf InStr(cell.Value, "") = 0 Then
            cell.Interior.Color = XlRgbColor.rgbWhite 

我想做的是清洁。如果没有字符串,我的代码会使单元格变为白色。然后我需要它也合并没有字符串值的单元格。

1 个答案:

答案 0 :(得分:0)

对于你可能想要达到的目标,我也有点模糊。你提供的代码似乎对我来说很好。然而,如果你想稍微区别对待合并的单元格,那么下面的代码改编可能会有所帮助:

Sub colorcells()
Dim cell As Range

For Each cell In Range("Range1")
    If cell.Address = cell.MergeArea.Cells(1, 1).Address And cell.MergeArea.Cells.Count > 1 Then
        Debug.Print "Here is a merged cell range starting (top left corner): " & cell.Address
        cell.Interior.Color = XlRgbColor.rgbRed
    Else
        If InStr(cell.Value, "Person1") > 0 Then
            cell.Interior.Color = XlRgbColor.rgbSienna
        ElseIf InStr(cell.Value, "") > 0 Then
            cell.Interior.Color = XlRgbColor.rgbLightGrey
        ElseIf InStr(cell.Value, "") = 0 Then
            cell.Interior.Color = XlRgbColor.rgbWhite
        End If
    End If
Next cell

End Sub