
下記の式を作成したのですが、コンパイルエラーがでて困っております。
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) 複数シート一括作成後に、特定範囲の数式は値で貼り付けしたい 3 2022/10/07 11:18
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) エクセルVBAで教えて頂きたいのですが? 2 2022/12/31 20:28
- Excel(エクセル) 【マクロ】【VBA】同じフォルダ内にあるエクセルのデータを転記したい【ブック1からブック2へ】 9 2023/08/10 07:51
- Visual Basic(VBA) Sub 分けてソートして貼り付ける() Dim srcSheet As Worksheet Dim 6 2023/08/04 19:57
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの関数 ENTERを押...
-
エクセルを共有するとPCによっ...
-
VBAでブックを非表示で開いて処...
-
エクセルで参照しているデータ...
-
WorkBooksをオープンさせずにシ...
-
Excelファイルをダブルクリック...
-
エクセルを開くと最大化などの...
-
Excelの警告について
-
エクセルファイルをオープンし...
-
エクセルファイルを開かずにpdf...
-
Excelでブックの共有を掛けると...
-
【マクロ】アクティブセルの時...
-
Excelの新しい空白のブックを開...
-
ブックのピボットを別ブックに...
-
Excel(2010)のフィルターが保...
-
Excelの外部参照しているセルが...
-
エクセルにおける,「ブック」...
-
複数ファイルから特定シートの...
-
フォルダ内の複数ファイルから...
-
Excelでワークシートが挿入でき...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】アクティブセルの時...
-
Excelの新しい空白のブックを開...
-
VBAでブックを非表示で開いて処...
-
エクセルの関数 ENTERを押...
-
エクセルを共有するとPCによっ...
-
Excelファイルをダブルクリック...
-
WorkBooksをオープンさせずにシ...
-
Excelでブックの共有を掛けると...
-
エクセルで参照しているデータ...
-
Excel(2010)のフィルターが保...
-
Excelの警告について
-
Excelで複数ブックの同一セルに...
-
フォルダ内の複数ファイルから...
-
同じフォルダへのハイパーリン...
-
エクセルにおける,「ブック」...
-
別ブックから入力規則でリスト...
-
エクセルで別ブックをバックグ...
-
エクセルでウィンドウの枠固定...
-
エクセルファイルを開かずにpdf...
-
「ブックの共有」を有効にして...
おすすめ情報