2013-05-29 90 views
1

我有一個列C在其所有單元格中都有名稱,另一個列E在其所有單元格中都有相同的公司名稱我需要將C列中的名稱追加到列中的公司名稱Ë將單元格追加到其他單元格

感謝

例:

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

所有你想要做的就是創建一個放在股骨頸的E collumn E中的價值「」同一行的C列的值的宏? – Newbie

回答

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

如果你想使用FormulaR1C1Column E其不可能輸出。 任何適用於excel界面的公式都適用於FormulaR1C1。 與我的意思是(考慮到圖像)在單元格F2你可以manullay輸入一個公式= 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

+0

Santosh它完美的工作。我擔心我通過粘貼回E列創建了一個不好的功能。我會將Google'cell.Offset()'讀起來,它看起來像是一種有價值的技術。 '謝謝' – xyz

2

這裏失敗的一些代碼,來幫助你完成你想要什麼......我通常不使用for循環的範圍,因爲它更容易使用.Cells(行,列)對我來說,但反正:

編輯:添加的子打開/關閉語法和編輯使用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 
+0

Kurt它工作得很好,謝謝。我會研究你如何做到這一點,這會幫助我更好地理解。 – xyz

相關問題