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

コード

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 & " " & C2E2

以下のコードを使用して実現できます。

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 に答える
2

ここにあなたが望むものを助けるはずのいくつかのコードがあります...私にとっては .Cells(row, col) を使用する方が簡単なので、通常はループに範囲を使用しませんが、とにかく:

編集:サブ オープニング/クロージング シンタックスを追加し、ActiveSheet の代わりに WS を使用するように編集して、必要なものに近づけました。

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 に答える