2016-08-10 14 views
0

Sheet( "Company")の列Aの値と "Current"の列Eの値を一致させるマクロを作成しようとしています。一致するものがあり、この右側のセル28( "Current")が空白の場合、 "Company"の各セルの右側にセルをコピーして貼り付けます。 Sheet( "Company")の列Aのすべての値をループします。さらに困難な場合は、ActiveSheetユーティリティを実装することができればと思って、「会社」だけでなく他のシートにも適用することができます。ここで私が持っているものだ...ワークシート上のセルを一致させ、関連するセルをコピーして貼り付けるマクロ

Option Explicit 

Sub CopyPaster() 

InvestorName As String 

InvestorName = ActiveCell.Value 

With Sheets("Current") 

For i = 11 To 500: 
    If i = InvestorName And Cells(i, 27) = 0 Then 
     Sheets("Company").ActiveCell.Offset(0, 3).Copy   
     Sheets("Current").Cells(i, 28).PasteSpecial     
Next i 

End Sub 

まず現在のシートを示し、第2の画像は、私がからコピーしたい会社シートの1つの例です。

+1

正確にあなたは立ち往生していますか、どのようなエラーが発生していますか? –

+0

'If If = InvestorName And Cells(i、27)= 0 Then'に' End If'がありませんか? With Sheets( "Current") '? –

+0

@ user6701007両方のワークシートでデータのサンプルを共有してください。コードの望ましい結果はどのようなものでしょうか? –

答えて

1

この情報に基づいて、私はこれがあなたの後であると思います。右の列を選択したことをもう一度確認してください。データを参照しないで参照していたものを見るのは難しいです。

Sub StackExchangeVlookup() 

Dim Company As Worksheet 
Dim Current As Worksheet 

'set worksheets with the names of the sheets to compare 
Set Company = Sheets("Company") 
Set Current = Sheets("Current") 

Dim myRange As range 
Dim myCell As range 
'Set the range to the column you want to replace empty cells in. I think I counted 
'correctly, but maybe not. If AF is not correct, will also need to change the 32 
Set myRange = range("AF1", Cells(Rows.count, 32).End(xlUp)) 

'if the cell is empty in the column AF (or whichever is the one you want, then use 
'the VLOOKUP function. 
For Each myCell In myRange 
    If Len(myCell) = 0 Then 
    'VLOOKUP will get the cell in column E of the row of the blank space in AF, compare 
    'it to Column A in Company, and then return the value to the right of the cell found 
    'in the Company sheet. 
     myCell.Value = _ 
    "=VLOOKUP(" & Current.Name & "!E" & myCell.Row & "," & Company.Name & "!A:B, 2, FALSE)" 
    End If 
Next myCell 

End Sub 
関連する問題