以前に質問させていただいたVBAのアレンジで質問させてください
下記の式でHowManyで値を求めてL8へ数値を入力しています。
BOOK1とBOOK2で同じフォーマットのシートを利用する業務があります
BOOK1のVBAでBOOK2を開きHowManyで計算した値をシート1のL8へ入力する場合
下記の式だとどうすればよいのでしょうか?
Sub 依頼量()
Dim LastRow, HowMany As Long
Dim LastItem As String
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.2ベストアンサー
- 回答日時:
こんにちは!
>BOOK1のVBAでBOOK2を開き・・・
複数のブックを開いているのであれば、
どのブックのどのシートか?を明記する必要があると思います。
お示しのコードでは単にセル操作だけしているようですので、
それぞれにブック名とシート名を付け加える必要があると思います。
※ 変数の宣言はNo.1さんがご指摘されている通りで、
>Dim LastRow, HowMany As Long
では「LastRow」は何も宣言していないので、「Variant型」になります。
(まぁ~!大勢には影響はありませんが)
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 = "開いているブック名.xlsx"
Set wS1 = wB1.Worksheets("Sheet1") '//←「Sheet1」の部分は実際のシート名に!//
Set wS2 = wB2.Worksheets("Sheet○") '//←「Sheet○」の部分は参照先ブックのシート名に!//
のように宣言し
あとはそれぞれのコードの前に追加してみてください。m(_ _)m
No.1
- 回答日時:
質問内容とは違うのですが、気になったので。
dimの書き方についてですが、これだとLastRowの型は
Variantになるはずです。
確認してみてください。
質問外のコメント、失礼しました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) 複数シート一括作成後に、特定範囲の数式は値で貼り付けしたい 3 2022/10/07 11:18
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
- Visual Basic(VBA) ユーザーフォームの書き出しで追加のご相談 ユーザーフォームの値をシートに書き出す際、コードが表示され 2 2022/08/05 10:58
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Visual Basic(VBA) 【VBA】特定のワードが入っている行全体を塗りつぶしたい 4 2022/04/20 15:22
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの関数について教えて...
-
エクセルを共有するとPCによっ...
-
エクセルの関数 ENTERを押...
-
VBAでブックを非表示で開いて処...
-
フォルダ内の複数ファイルから...
-
Excel(2010)のフィルターが保...
-
WorkBooksをオープンさせずにシ...
-
エクセルで参照しているデータ...
-
Excelで複数ブックの同一セルに...
-
Excelでブックの共有を掛けると...
-
指定ファィルの指定シートをシ...
-
複数ファイルから特定シートの...
-
エクセルシートの一部を送りたい
-
エクセルファイルを開かずにpdf...
-
エクセル2016です。「ブッ...
-
複数のブックをひとつのブック...
-
vbaでpdfを開いて1ページ目のみ...
-
Excel起動時に特定のワークシー...
-
エクセル 複数のブックを一度...
-
ブックのピボットを別ブックに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルを共有するとPCによっ...
-
エクセルの関数 ENTERを押...
-
VBAでブックを非表示で開いて処...
-
WorkBooksをオープンさせずにシ...
-
Excelでブックの共有を掛けると...
-
エクセルで参照しているデータ...
-
Excel(2010)のフィルターが保...
-
Excelで複数ブックの同一セルに...
-
VBA バックグラウンドで別ブッ...
-
エクセルで50行ごとに区切った...
-
エクセルで「ディスクがいっぱ...
-
エクセルにおける,「ブック」...
-
エクセルファイルを開かずにpdf...
-
フォルダ内の複数ファイルから...
-
ブックのピボットを別ブックに...
-
エクセルシートの一部を送りたい
-
エクセル2016です。「ブッ...
-
エクセルで別ブックをバックグ...
-
フォルダ内の複数ファイルから...
-
複数ファイルから特定シートの...
おすすめ情報