重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

下記の式を作成したのですが、コンパイルエラーがでて困っております。
SET wB2 のフルパスのところでひっかかっているようなのですがなにがいけないのでしょうか?

また、このVBAは同じ2枚のフォーマットを使用する業務があり、ブック2からHowManyで合計値をもとめて今使おうとしているブック1のL4に値を入力させたいと思い作成しました

Sub 改善()

Dim LastRow As Long, HowMany As Long
Dim LastItem As String

Dim wB1 As Workbook, wB2 As Workbook
Dim wS1 As Worksheet, wS2 As Worksheet

Set wB1 = ThisWorkbook
Set wB2 = "C:\Users\えるざ\Desktop\えるざ.xlsx"

Set wS1 = wB1.Worksheets("Sheet1") '//
Set wS2 = wB2.Worksheets("Sheet1") '//

HowMany = 0

LastRow = Cells(Rows.Count, "B").End(xlUp).Row

LastItem = Cells(LastRow, "C").Value

For i = LastRow To 1 Step -1

If Cells(i, "C").Value <> LastItem Then

Exit For
End If

HowMany = HowMany + Cells(i, "D").Value

Next i

Cells(4, "L").Value = HowMany

MsgBox LastItem & "の依頼量は" & HowMany & "です!"


End Sub

A 回答 (3件)

こんにちは!



「えるざ.xlsx」ブックが開いている状態ならば
>Set wB2 = "えるざ.xlsx"
だけで良いのでは?

開いていない場合はNo.2さんの通りだと思います。

そしてその後のコードを拝見すると
LastRow や LastItem はどのブックのどのシートか?の指定がないですよね。

>LastRow = wS1.Cells(Rows.Count, "B").End(xlUp).Row
のようにシートを指定してやる必要があるのでは?

もちろんそれ以下のセル指定をしている行も
丁寧にすべてシートを指定するのが良いと思います。m(_ _)m
    • good
    • 0
この回答へのお礼

Sub 改善()

Dim LastRow As Long, HowMany As Long
Dim LastItem As String

Dim wB1 As Workbook, wB2 As Workbook
Dim wS1 As Worksheet, wS2 As Worksheet

Set wB1 = ThisWorkbook
Set wB2 = Workbooks.Open("ファイルフルパス.xlsx")

Set wS1 = wB1.Worksheets("#1") '//
Set wS2 = wB2.Worksheets("#1") '//

HowMany = 0

LastRow = wS2.Cells(Rows.Count, "B").End(xlUp).Row

LastItem = wS2.Cells(LastRow, "C").Value

For i = LastRow To 1 Step -1

If wS2.Cells(i, "C").Value <> LastItem Then

Exit For
End If

HowMany = HowMany + wS2.Cells(i, "D").Value

Next i

Cells(8, "L").Value = HowMany

MsgBox LastItem & "の依頼量は" & HowMany & "です!"


End Sub

これでできました! ご助力ありがとうございました!!!

お礼日時:2018/03/23 01:45

> なにがいけないのでしょうか?



Workbookオブジェクトを格納すべきオブジェクト変数に、単純な文字列を放り込もうとしてます。
手元にExcel無いですが、

Set wB2 = Workbooks.Open("C:\Users\えるざ\Desktop\えるざ.xlsx")

では?
    • good
    • 0

Set wB2 = Workbooks( "C:\Users\えるざ\Desktop\えるざ.xlsx")


などとしてください。
    • good
    • 0

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