| 
    
     |  | こんにちは。かみちゃん です。 
 >私の書いていた元のコードです。
 >
 >範囲 = Sheet2.Cells(Sheet2.Rows.Count, 1).End(xlUp).Row
 >
 >ActiveCell.FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC[-8],'Sheet2'!R5C1:R" & 範囲 & "C3,2,FALSE)),0,VLOOKUP(RC[-8],'Sheet2'!R5C1:R" & 範囲 & "C3,2,FALSE))"
 >Sheet2はピボットテーブルでそのデータを参照しようとしています。
 
 このコード本当に動きますか?
 Sub Macro1()
 範囲 = Sheet2.Cells(Sheet2.Rows.Count, 1).End(xlUp).Row
 ActiveCell.FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC[-8],'Sheet2'!R5C1:R" & 範囲 & "C3,2,FALSE)),0,VLOOKUP(RC[-8],'Sheet2'!R5C1:R" & 範囲 & "C3,2,FALSE))"
 End Sub
 とすると、1行目でエラーになります。
 
 これは、
 Sub test()
 範囲 = Worksheets("Sheet2").Cells(Worksheets("Sheet2").Rows.Count, 1).End(xlUp).Row
 ActiveCell.FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC[-8],'Sheet2'!R5C1:R" & 範囲 & "C3,2,FALSE)),0,VLOOKUP(RC[-8],'Sheet2'!R5C1:R" & 範囲 & "C3,2,FALSE))"
 End Sub
 としたほうがいいのではないでしょうか?
 
 もっとも、検索した結果だけを取得したいなら、Vlookup関数を使わなくてもできますが・・・
 
 |  |