プロが教える店舗&オフィスのセキュリティ対策術

こんにちわVBAの質問です。
よろしくお願いします。
写真のように、期間と、エリアで
データを検索し、その合計を
セルに代入すると言うのを作ったのですが
1番上の列しか、どうやってもできません

Private Sub Worksheet_Change(ByVal Target As Range)
Dim cRow As Double
Dim cRow2 As Double
Dim cRow3 As Double
Dim i As Long
Ws1 = worksheets(“下請依頼書”)
Ws2 = worksheets(“下請明細”)


If Target.Row = 1 And Target.column = 2 Then
EndRow = WorkSheets(“下請依頼書”).Range(“A1”).End(xlDown).Row

For i = 2 To endRow
If Ws1.Range(“C” & i) >= Ws2. Range(“D1”) _
And Ws1.Range(“C” & i) >= Ws2. Range(“F1”) _
Ws1. Range(“FB” & i) = Ws2. Range(“C3”).Value Then

cRow = cRow + Ws1.Cells( i , 182)
cRow2 = cRow2 + Ws1.Cells( i , 183)
cRow3 = cRow3 + Ws1.Cells( i , 184)

End If

Next i

Ws1.Range(“D3”).Value = cRow
Ws1.Range(“E3”).Value = cRow2
Ws1.Range(“F3”).Value = cRow3

End If
End Sub
この命令が、12回続きます。
コピペしたらタイトルが不正だと言われ
全く動きませんでしたww
お手上げです。。。

「こんにちわVBAの質問です。 よろしくお」の質問画像

質問者からの補足コメント

  • へこむわー

    すいません。
    こちらの質問は、スマホから手打ちしていて
    大文字とスペースなどのミスがありました^^;

    ちなみに、この命令自体は、きちんと動きます。
    この命令では、最初の写真にあるように
    長野エリア、期間限定、合計料金、距離、高速
    だけ、取得するようになっています

    その下の水戸、豊橋、盛岡、山梨、以下、全て
    同じことをしたいのですが、上のプログラムを
    End Sub 以下にコピペして、参照箇所を
    変えても動かないので、なにか、あるのかなと思いまして、、、

    「こんにちわVBAの質問です。 よろしくお」の補足画像1
      補足日時:2021/01/23 13:13
  • 上の写真のwsの前にSet つけ忘れてますが
    手直し前の写真なので Setは付いてます

      補足日時:2021/01/23 13:17
  • それと、cRow = ctrRow... は
    間違いで、cRow = cRow ...です

      補足日時:2021/01/23 13:22

A 回答 (2件)

これ、VBエディタからコピーしてきたものじゃないですよね。


たとえば Ws1 = worksheets(“下請依頼書”) と表示されてること自体おかしいし。
Ws1 = Worksheets("下請依頼書")となるはず(Wが大文字)。

Ws1. Range(“FB” & i) = Ws2. Range(“C3”).Value Then
の行もおかしい(Ws2のあとにスペースが入っている、など)
And Ws1.Range("FB" & i) = Ws2.Range("C3").Value Then
とかでは?  

Ws1 = worksheets(“下請依頼書”)
でエラーにならないのも変。
Set Ws1 = Worksheets("下請依頼書")
とかかな?

とにかく、動きがおかしくても現物のコードを見せてくれないと、ちゃんとした回答はつかないですよ。
    • good
    • 0

全体の流れを追った訳ではないですが、A1に値が入っていないのが原因かもしれないですね。



とりあえず
WorkSheets(“下請依頼書”).Range(“A1”).End(xlDown).Row

WorkSheets(“下請依頼書”).Range("A1048576").End(xlUp).Row
にしてみてください。
    • good
    • 0

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