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

VBEの画面で、実行(F5)したところエラーなく実行できましたが、マクロを登録したボタンで実行するとエラーになってしまいます。

エラー内容は、
実行時エラー'1004'
Rangeメソッドは失敗しました。
です。

超初心者でとてもお恥ずかしいのですが以下にコードを記載します。
ご教示いただけると大変助かります。
よろしくお願いいたします。
-------------------
Dim LastRow As Long
Dim Day As Long
Dim i As Long
Dim k As Long

Dim ws1 As Worksheet
Dim ws2 As Worksheet

Set ws1= worksheets(“Sheet1”)
Set ws2= worksheets(“Sheet2”)

ws2.Range(“C6:G35).ClearContents
ws1.Select
With ws1

LastRow = ws1.Range(“A”&Rows.count).End(xlUp).Row
Day = ws2.Range(“C3”)
k = 6
For i = 3 To LastRow

If ws1.cells(i,7)= Day Or ws1.cells(i,10)= Day Then
★ws1.Range(cells(i,3),cells(i,6)).Copy
ws2.Range(“B”&k).PasteSpecial xlPasteValues
k = k+1
End If
Next i
End with
End sub
----------------
★印のところがエラーとなります。

原因が分からず初心者の私にはお手上げ状態です。。
よろしくお願いいたします。

A 回答 (4件)

こんばんは


掲示のコードはVBEからコピペですか?

“B”&k
コンパイルできないと思うのですが・・・
エディターオプションによっては出来るのかな?

不自然な行間ですけれど・・他になんか書いているのでしょうか・・

ws1.Select とあるから Range(cells(i,3),cells(i,6)).Copy とするか

With ws1とあるから
.Range(.cells(i,3),.cells(i,6)).Copy とするか・・
    • good
    • 0
この回答へのお礼

解決しました

ありがとうございました。今日会社でエラーの部分を.Range(.cells(i,3),.cells(i,6)).Copyにしたら、実行できました!助かりました!!お礼が遅くなりすみません。。

お礼日時:2022/07/26 17:59

With ws1が余分です。

End withも要らない。

With ws1が有ると、
ws1.Range(cells(i,3),cells(i,6)).Copyは以下の解釈となります。

ws1.ws1.Range(cells(i,3),cells(i,6)).Copy

Rangeメソッドのエラーです。

アクティブシートがws1(つまりws1を表示している状態)なら、エラーにはなりません。
    • good
    • 0
この回答へのお礼

助かりました

ご回答ありがとうございます。なるほど…余計な部分がたくさんあったんですね。。まだまだ勉強不足です。ご丁寧に教えていただき感謝です!

お礼日時:2022/07/26 18:01

そのボタンって、Sheet2にありませんか?


Sheet1にもっていけば、うまくいくような気がする。
    • good
    • 0
この回答へのお礼

Thank you

ご回答ありがとうございます!まだまだ勉強不足です。。お礼が遅くなりすみませんでした。

お礼日時:2022/07/26 18:02

Rangeは、Range("A3")の様に列文字+行番号を指定する必要があります。



なので、Range(cells(i,3),cells(i,6))とやると、

cells(i,3)にはA,B,C・・・などの列文字
cells(i,6)には1,2,3・・・などの行番号

が入ってる必要が有りますが、入ってますか???
    • good
    • 0
この回答へのお礼

Thank you

早速のご回答ありがとうございます。
Range(cells(i,3),cells(i,6))は、該当行の3〜6列(C列〜F列)をコピーするために指定しました。コード画面の実行(F5)では想定の範囲をコピーできているので、コード自体は間違ってないかなと思ったのですが…。

お礼日時:2022/07/25 22:07

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