我有一个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
答案 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
如果您希望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