将单元格附加到不同的单元格

时间:2013-05-29 23:06:32

标签: excel excel-vba vba

我有一个C列,其所有单元格中都有名称,另一列E在其所有单元格中都有相同的公司名称我需要将C列中的名称附加到E列中的公司名称

由于

例如:

ColC  ColE
Bob   SampleCo
Sally SamplCo

我得到了

ColC  ColE
Bob  SampleCo Bob
Sally SamplCo Sally

我正在尝试但是失败了

Sub CompanyName()

Dim LastRow As Long
Dim Ws As Worksheet
Dim rRange As range


 Set rRange = range("E2")
 rRange.Select

Set Ws = Sheets("WP_SubjectList_Ready")

LastRow = Ws.range("F" & Ws.Rows.Count).End(xlUp).Row

Ws.range("E2:E" & LastRow).FormulaR1C1 = "=rRange &RC[-1]"

range("E2:E" & LastRow).Copy
range("E2:E" & LastRow).PasteSpecial xlPasteValues

End Sub

2 个答案:

答案 0 :(得分:2)

这里有一些代码可以帮助你完成你想要的东西...我通常不会使用范围循环,因为它更容易使用.Cells(row,col)对我来说,但无论如何:

编辑:添加了子打开/关闭语法并编辑为使用WS而不是ActiveSheet,因此它更接近您想要的内容

Sub CompanyName()
Dim WS as Worksheet
Dim vRow
Dim vRowCount As Integer

Set WS = Sheets("WP_SubjectList_Ready")

'Gets Row # of Last Row for Column E
vRowCount = Range("E" & Rows.Count).End(xlUp).row

'Assuming Both Columns have the same row count and you have a header row
For vRow = 2 To vRowCount
    WS.Cells(vRow, 5).Value = WS.Cells(vRow, 5).Value & " " & WS.Cells(vRow, 3).Value
Next vRow

End Sub

答案 1 :(得分:2)

代码

Sub CompanyName()

    Dim LastRow As Long
    Dim Ws As Worksheet

    Set Ws = Sheets("WP_SubjectList_Ready")
    LastRow = Ws.Range("E" & Ws.Rows.Count).End(xlUp).Row
    Ws.Range("F2:F" & LastRow).FormulaR1C1 = "= RC[-1] & "" "" & RC[-3]"

End Sub

enter image description here

如果您希望Column E中的输出无法使用FormulaR1C1。 任何适用于excel接口的公式都适用于FormulaR1C1。 我的意思是(考虑图像)在单元格F2中,您可以手动输入公式= E2 & " " & C2,这将为您提供所需的输出。但是,如果您在单元格E2中输入公式为=E2 & " " & C2,则单元格E2将失去其值,这甚至可能导致循环引用问题。

可以使用以下代码实现。

Sub CompanyName()

    Dim LastRow As Long
    Dim Ws As Worksheet
    Dim rng As Range, cell As Range

    Set Ws = Sheets("WP_SubjectList_Ready")
    LastRow = Ws.Range("E" & Ws.Rows.Count).End(xlUp).Row
    Set rng = Ws.Range("E2:E" & LastRow)

    For Each cell In rng
        cell = cell & " " & cell.Offset(0, -2)
    Next
End Sub

enter image description here