• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ループが走りません)

ループが走りません

このQ&Aのポイント
  • VBAコードで作成したループが正常に動作しない問題が発生しています。
  • 「最終」シートのC列から始まり最終行までのデータを検索し、条件に一致する場合には「最終」シートのG列に値を入力する処理を行いたいです。
  • しかし、現在のコードではループが正しく動作しておらず、原因が分かりません。アドバイスをいただけると幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

はじめまして。 これは、ExcelマクロのVisualBasicですよね。 私も一時期これでがんばってました。 さて、これはループが走らないのではなくシート名の指示が違っているのです。 ご提示のマクロでは単価シートのC列と単価シートのC4を比較しているので、条件に一致しないか、単価シートのG6の数値が単価シートの相当行のG列に書き込まれることになっているので気づかれていないのではと予測します。 エラーが出ないのでさぞ悩まれたことでしょうね。わかります。 正解は Sub COIN() Dim shSAI As Worksheet Dim shTAN As Worksheet Dim inROW As Long Set shSAI = Sheets("最終") Set shTAN = Sheets("単価") For inROW = 10 To shSAI.UsedRange.Rows.Count If shSAI.Range("C" & inROW) = shTAN.Range("C4") Then shSAI.Range("G" & inROW).Value = shTAN.Range("G6").Value End If Next Set shSAI = Nothing Set shTAN = Nothing End Sub End Ifの直前2行のシート名が入れ替わると動きます。試してみました。 初心者といわれますが、私の初心者の時より上手い気がします。 ここからスタートして、頑張ってくださいね! あと、シート名は特に必要がなければ半角英数を推奨します。 何かのときにバグが出るんです。経験済みです。では!

y-bankrupt
質問者

お礼

早速の回答ありがとうございます 余りにテンパっていて、エクセルのマクロVBAであることすら、表記しておりませんでした。 回答の内容は正にその通りだったようです、失礼ながらコードをコピペしたところ、思った通りの動作をしました。 ありがとうございます

関連するQ&A