|
こんにちは。かみちゃん です。
>私の書いていた元のコードです。
>
>範囲 = 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関数を使わなくてもできますが・・・
|
|