1

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

2 回答 2

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
于 2013-05-29T23:56:18.367 回答
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

在此处输入图像描述

于 2013-05-30T01:59:10.813 回答