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

セルS2に入力した「月」と一致したB列の右隣へセルS110の値を転記する下記マクロを実行するとエラー(RangeクラスのPastメソッドが失敗しました。)となります。解決策を教えてください。
Sub test1()
Dim c As Long
'処理月S2へS5を転記
For c = 112 To 123
If Cells(c, 2).Value = Range("S2").Value Then Exit For
Next c
If c < 15 Then Range("S110").Copy
Cells(c, 3).PasteSpecial Paste:=xlPasteValues
End Sub

「セルS2に入力した「月」と一致したB列の」の質問画像

A 回答 (2件)

If c < 15 Then Range("S110").Copy を


If c < 124 Then Range("S110").Copy
に変えてください。
    • good
    • 1
この回答へのお礼

ありがとうございます。できました。

お礼日時:2022/12/06 20:55

こんにちは



>If c < 15 Then Range("S110").Copy
変数cの値は112~124になるはずなので、上記の判定がTrueになることはないはずです。
ですので、何もコピーされません。
コピーしていないものをPasteしようとして、エラーが発生しているのではないかと推測します。

>一致したB列の右隣へセルS110の値を転記する
のであれば、
If c < 124 Then
Range("S110").Copy
Cells(c, 3).PasteSpecial Paste:=xlPasteValues
End If
としておけば良いのではないでしょうか?

でも、値の転記だけで良さそうなので、
If c < 124 Then Cells(c, 3).Value = Range("S110").Value
の1行にしてしまうのが簡明そうに思います。
    • good
    • 1
この回答へのお礼

ありがとうございます。できました。

お礼日時:2022/12/06 20:55

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