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

我有一个名称在其所有单元格中的列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 

 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 

在这里输入图像说明

如果你想使用FormulaR1C1不能使用Column E的输出。 任何适用于Excel界面的公式都适用于FormulaR1C1 。 与我的意思(考虑到图像)在F2单元格中,您可以manullayinput一个公式= E2 & " " & C2这将给你所需的输出。 但是如果进入单元格E2 ,则单元格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 

在这里输入图像说明

这里有一些代码应该可以帮助你想要什么…我通常不使用范围for循环,因为它更容易使用.Cells(row,col)对我来说,但无论如何:

编辑:添加Sub打开/closures语法和编辑使用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