|
▼G-Luck さん:
お答えをいただき、ありがとうございます。
IVで以下のように実行してみましたが、うまくいきませんでした。
Sheets(SHEET1).Columns("N:IV").Delete Shift:=xlToLeft
別シートのセル
=IF(I$4="","",INDEX(SHEET1!$N$12:$IV$12,I$4)) ←エラー
ただ以下のように、削除を2回に分けたらうまくいきました。
Sheets(SHEET1).Columns("IV:IV").Delete Shift:=xlToLeft
Sheets(SHEET1).Columns("N:IU").Delete Shift:=xlToLeft
別シートのセル
=IF(I$4="","",INDEX(SHEET1!$N$12:$IV$12,I$4)) ←OK
ちなみにEXCEL2000です。2000と2003では違うのでしょうか。
お手数をおかけいたしました。
>▼もぐ さん:
>>はじめまして。列削除とリンクの関係についての質問です。
>>
>>マクロで列削除を行うと、削除した列のセルを参照している別シートの関数が「#REF」となってしまいます。
>>
>> 列NからOをマクロで削除
>> Sheets(SHEET1).Columns("N:O").Delete Shift:=xlToLeft
>>
>> この処理を実行すると、別シートの関数
>> 「=IF(I$4="","",INDEX(SHEET1!$N$12:$O$12,I$4))」の
>> 「$N$12:$IV$12」の部分が#REFとなってしまう。
>>
>>マクロでなく、手作業で列を削除するとこのような現象は起こりません。
>>お分かりになる方、よろしくお願いいたします。
>
>G-Luckといいます。
>
>式のタイプミスではないですか?
>=IF(I$4="","",INDEX(SHEET1!$N$12:$O$12,I$4))
>=IF(I$4="","",INDEX(SHEET1!$N$12:$IV$12,I$4))
>
>IVですと、私の環境(Excel2003,WinXP)では、
>Excel上からの削除も、VBAからの削除も正常に計算してくれるのですが。
|
|