痔になりやすい生活習慣とは?

添付した画像は会社で使用している在庫表です。
毎朝クエリによって在庫データは更新されます。
その際、注文した商品が入荷されているとマクロにより該当する
Sheet1のJ列がクリアされ空白になります。(J列の表示は空白か0です)
入荷のあった商品をSheet2から探しその日の日付をD列に手入力していました。
しかし、シート数と各行数が多く時間が掛かっていため
自動で入力されるよう編集することにしました。
VBAはマクロの記録を使用したことがあるだけでほとんど知識がありませんので
関数を使って何とか完成させました。
結果希望通りにはなったのですが、70シートある内の半分程のシートに式を埋めた時点で
エクセルの動作が重くなってしまいました。

解決策をご存知の方がいらっしゃいましたらご教授下さると大変助かります。
よろしくお願い致します。

Sheet2のE2に入力されている式です
=INDEX(Sheet1!$J$4:$J$8,MATCH(A2,Sheet1!$B$4:$B$8,0),1)&""
C列の注文日は在庫データの更新とともにマクロでソートされるためA列は順不動になります。

Sheet2のD2に入力されている式です
=IF(E2<>"0",IF(D2="",TODAY(),D2),"")
入荷日を固定させるためこのような式になりました。最大反復回数は1にしてあります。

「エクセルが重い時の対処法」の質問画像

A 回答 (2件)

こんにちは!



横からお邪魔します。
D列関数が循環参照になってしまっていますね。
No.1さんが仰っているようにそれが原因だと思います。

どうしてもD列だけでそのような操作にしたいのであれば、
Sheet2の方もVBAにしてみてはどうでしょうか?

一例です。

Sub Sample1()
 Dim i As Long
  For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row
   If Cells(i, "E") <> "0" And Cells(i, "D") = "" Then
    Cells(i, "D") = Date
   End If
  Next i
End Sub

こんな感じで大丈夫だと思います。m(_ _)m
    • good
    • 0

メモリー容量を増やせばよいはずです。



「式D2=」の中で、D2を検索して、条件によっては書き換える/D2のまま、
と言う、循環関数みたいになっています。
この影響が考えられるでしょう。
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング