アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excel2010のマクロで困っています。

VBAでワークシートをコピーすると、その中に書かれている演算式vlookupの参照先が狂ってしまう(1行下にずれてしまう)ことが判りました。
Sheets(4).Copy After:=Sheets(4)

Activeworkbook.RefreshAll とか、
Sheet(4).Calculate とか 再計算をしてみても値は改善されません。

この直後に、ブレークポイントを設定し、手動で参照先のセルを再定義(F2を押してEnter)すると、正常な値になるので、sendkeyを使って、F2とEnterを送ってみると、複数のbookを使っている処理なので、結果が変な状態になってしまうために諦め、
値の再定義を行うために、
Columns("AM:AM").Select
For Each e In Selection
e.Value = e.Value
Next
を入れたりしましたが、それでも改善されません。

Sheets(4).Copy After:=Sheets(4)
を使わずに、シートの追加、コピー、貼付で行うと、セルにロックを掛けるなどの属性が消えてしまうのでこれも使えません。

対処方法がありましたら、ヒントを頂けると有難いです。
よろしくお願いします。

A 回答 (1件)

質問要件の中で、重要なポイントとして抜けているのは、


数式の内容の元がどうで、それがコピー後に、どう変わったかということです。

状況説明だけで、同じセル内で参照している限りは、シートコピーして数式の内容が変わるということはありえません。再現性のないものに解答はありません。

>e.Value = e.Value
という「値コピー」の処理では、

>シートの追加、コピー、貼付で行うと、セルにロックを掛けるなどの属性が消えてしまうのでこれも使えません。

という設問にも矛盾してしまいます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!