
下記の式を作成したのですが、コンパイルエラーがでて困っております。
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
No.3ベストアンサー
- 回答日時:
こんにちは!
「えるざ.xlsx」ブックが開いている状態ならば
>Set wB2 = "えるざ.xlsx"
だけで良いのでは?
開いていない場合はNo.2さんの通りだと思います。
そしてその後のコードを拝見すると
LastRow や LastItem はどのブックのどのシートか?の指定がないですよね。
>LastRow = wS1.Cells(Rows.Count, "B").End(xlUp).Row
のようにシートを指定してやる必要があるのでは?
もちろんそれ以下のセル指定をしている行も
丁寧にすべてシートを指定するのが良いと思います。m(_ _)m
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
これでできました! ご助力ありがとうございました!!!
No.2
- 回答日時:
> なにがいけないのでしょうか?
Workbookオブジェクトを格納すべきオブジェクト変数に、単純な文字列を放り込もうとしてます。
手元にExcel無いですが、
Set wB2 = Workbooks.Open("C:\Users\えるざ\Desktop\えるざ.xlsx")
では?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでブックを非表示で開いて処...
-
エクセルを共有するとPCによっ...
-
エクセルの関数 ENTERを押...
-
WorkBooksをオープンさせずにシ...
-
Excelでブックの共有を掛けると...
-
エクセルで参照しているデータ...
-
【マクロ】【画像あり】❶ブック...
-
Excelファイルをダブルクリック...
-
エクセルファイルをオープンし...
-
Excel(2010)のフィルターが保...
-
エクセルファイルを開かずにpdf...
-
【マクロ】【VBA】同じフォルダ...
-
複数ファイルから特定シートの...
-
ブックのピボットを別ブックに...
-
別ブックから入力規則でリスト...
-
Excelの警告について
-
Excelで複数ブックの同一セルに...
-
同じフォルダへのハイパーリン...
-
エクセルでウィンドウの枠固定...
-
エクセルにおける,「ブック」...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】アクティブセルの時...
-
エクセルの関数 ENTERを押...
-
VBAでブックを非表示で開いて処...
-
エクセルを共有するとPCによっ...
-
WorkBooksをオープンさせずにシ...
-
エクセルで参照しているデータ...
-
Excelファイルをダブルクリック...
-
Excelでブックの共有を掛けると...
-
「ブックの共有」を有効にして...
-
Excel(2010)のフィルターが保...
-
Excelの新しい空白のブックを開...
-
同じフォルダへのハイパーリン...
-
フォルダ内の複数ファイルから...
-
エクセルで別ブックをバックグ...
-
別ブックから入力規則でリスト...
-
ブックのピボットを別ブックに...
-
エクセルでウィンドウの枠固定...
-
エクセルにおける,「ブック」...
-
Excelで複数ブックの同一セルに...
-
Excelで指定範囲のデータ...
おすすめ情報