ここから本文です

エクセルマクロについて質問です 開いている複数のブックの、D43からD32893までを...

jap********さん

2018/7/2715:16:38

エクセルマクロについて質問です
開いている複数のブックの、D43からD32893までを、マクロが書いてあるブックのセル("A1")倍したいんですが、うまくいきません

実行時エラー'91'

オブジェクト変数またはWithブロック変数が設定されていません。

となってしまいます。

どなたか御教授下さい。

Sub Sample()

Dim BK As Workbook, i As Long
Dim WB As ThisWorkbook

For Each BK In Workbooks
With BK.Worksheets(1)
For i = 43 To 32893
.Range("D" & i) = .Range("D" & i) * WB.Worksheets("Sheet1").Range("A1")
Next i

End With
Next BK

End Sub

D&quot,A1&quot,wb.Worksheets,Sheet1&quot,Sub sample,WB.Name Then,If BK.Name

閲覧数:
28
回答数:
1

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

tra********さん

2018/7/2715:33:34

あなたのコードを訂正するなら↓。
未実行です。試してください。

Sub Sample()
Dim BK As Workbook, i As Long
Dim WB As Workbook
Set WB = ThisWorkbook
For Each BK In Workbooks
If BK.Name <> WB.Name Then
With BK.Worksheets(1)
For i = 43 To 32893
.Range("D" & i).Value = .Range("D" & i).Value * WB.Worksheets("Sheet1").Range("A1").Value
Next i
End With
End If
Next BK
End Sub

  • tra********さん

    2018/7/2715:41:24

    私が書くなら、

    Sub Sample改()
    Dim BK As Workbook
    With ThisWorkbook
    .Worksheets("Sheet1").Range("A1").Copy
    For Each BK In Workbooks
    If BK.Name <> .Name Then
    BK.Worksheets(1).Range("D43:D32893").PasteSpecial Paste:=xlPasteValues, Operation:=xlMultiply
    End If
    Next BK
    End With
    End Sub

    これも未実行。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2018/7/27 17:26:25

無事動作しました!
ありがとうございます!

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる