连接列

时间:2014-08-06 13:07:29

标签: excel-vba concatenation highlight vba excel

所以我试图将Column A单元与Column C单元连接起来,但问题是我只想连接两列,当且仅当列C单元被突出显示时。 C列中的某些单元格会突出显示(相反,但可能不会像所有时间一样)。所以说我们从A2和C2开始,如果C2突出显示,那么我们将A2连接到C2并将更改保留在C2中。然后转到下一行,如果C3没有突出显示,那么我们跳过它并检查C4是否突出显示。如果C4数据突出显示,那么我们将A4与C4连接。所以我们继续将它作为一个循环放到有信息的最后一行。

到目前为止,这就是我所拥有的:

Sub ConcatAandC()

Dim lRow As Long

lRow = Range("A" & Rows.Count).End(xlUp).Row

For i = 2 To lRow
Cells(i, 3) = Cells(i, 1) & "- " & Cells(i, 3)
Next i

End Sub

如您所见,这会连接所有行。我只针对列C单元格突出显示的行。

我的第二个问题是,由于A栏包含日期,我只想显示月和日。我试图改变A列的格式,希望当它将日期从A列复制到C列时,它只显示月份和日期,但遗憾的是它并非如此简单。例如,Cell A2具有8/1/2014,当它与C2连接时,它仅仅是8/1和Cell C数据。我还想过创建一个代码,它扫描C列以搜索" / 2014"并删除它,但我不知道从哪里开始。

所以如果有人能给我关于如何做到这一点的想法,我将不胜感激。我也是VBA的新手,所以请耐心等待我!

1 个答案:

答案 0 :(得分:1)

这将循环通过C列并检查单元格是否为黄色,如果是,则会连接它。

Sub ConcatAandC()
    Dim lRow As Long, i As Long
    Dim ws As Worksheet

    Set ws = ThisWorkbook.Sheets("Sheet1")

    With ws
        lRow = .Range("A" & Rows.Count).End(xlUp).Row

        For i = 2 To lRow
            '~~> Check If cell in Col C is yellow
            If .Range("C" & i).Interior.Color = 65535 Then _
            .Range("C" & i).Value = Format(.Range("A" & i).Value, "MM/DD") & _
                                    " - " & .Range("C" & i).Value
        Next i
    End With
End Sub
相关问题