• ベストアンサー

「変数の宣言」 が違うのでしょうか?

Excel 2002 です 下記コードはなんとか動作するんですが、 例えば、「Cells(1, 8).Value」が「2」の時、 「"G:G"」列の「12」にも動作してしまうので、 必ず、「2」だけに動作させたいんですが、 どのように記述すればよいでしょうか? 「Cells(1, 8).Value」と「"G:G"」列は、1~20までの数字しかありません。 他に、おかしな記述箇所がありましたら、教えて下さいませ。 何卒よろしくお願い致します。 ---------------------- Sub 一セルずつ貼付ける() Dim fWord As Integer, fAdd, c fWord = Cells(1, 8).Value With Workbooks("ああ.xls").Worksheets(1).Range("G:G") Set c = .Find(fWord, LookIn:=xlValues) If Not c Is Nothing Then fAdd = c.Address Do c.Offset(0, 5).Copy Worksheets(Worksheets.Count).Range("D65536").End(xlUp). _ Offset(1, 0).PasteSpecial Paste:=xlAll, _ Transpose:=True Set c = .FindNext(c) Loop While Not c Is Nothing And c.Address <> fAdd End If End With End Sub

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

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

Set c = .Find(fWord, LookIn:=xlValues) を Set c = .Find(fWord, LookIn:=xlValues, LookAt:=xlWhole) にしてみてはどうでしょうか?

oshietecho-dai
質問者

お礼

誠に、どうも有難うございました。 ばっちりでした。

その他の回答 (1)

  • yokomaya
  • ベストアンサー率40% (147/366)
回答No.1

FINDは文字列の検索なので数値判定はできません。見つかった時点で再度if等で数値判定してください。

oshietecho-dai
質問者

お礼

遅くなりまして、申し訳ございませんでした。 早速のご回答誠に有難うございました。

関連するQ&A