2016-03-30 13 views
0

クラスの次のコードをデバッグしようとしています。私の人生のために、私はそれぞれの声明のために何が間違っているのか分からないようです。オブジェクトはVBAのプロパティまたはメソッドのエラーをサポートしていません各ループについて

Public Sub PrintWorksheets1() 
    'declare variables and assign address to object variable 
    Dim intPrint As Integer, wkbHours As Workbook, shtCurrent As Worksheets 
    Set wkbHours = Application.Workbooks("T9-EX-E9D.xls") 
    'ask user if he or she wants to print the worksheet 
For Each shtCurrent In wkbHours 
    intPrint = _ 
     MsgBox(prompt:="Print " & shtCurrent.Name & "?", Buttons:=vbYesNo + vbExclamation) 
    If intPrint = vbYes Then  'if user wants to print 
     shtCurrent.PrintPreview 
    End If 
Next shtCurrent 
End Sub 

私は、アクティブシートとワークシートにshtCurrentを設定しようとしました。どんな助けでも大歓迎です!

答えて

0

更新コード:あなたはほとんどそこにあったが、ワークブックのワークシートをループする必要があります...

Public Sub PrintWorksheets1() 
    'declare variables and assign address to object variable 
    Dim intPrint As Integer, shtCurrent As Worksheet 
    Dim wkbHours As Workbook: Set wkbHours = Workbooks("T9-EX-E9D.xls") 
    'ask user if he or she wants to print the worksheet 
    For Each shtCurrent In wkbHours.Worksheets 
     intPrint = MsgBox(prompt:="Print " & shtCurrent.Name & "?", Buttons:=vbYesNo + vbExclamation) 
     'if user wants to print 
     If intPrint = vbYes Then shtCurrent.PrintPreview 
    Next shtCurrent 
End Sub 
+0

ありがとうございました!私は、ワークブックレベルではなくワークシートレベルへの各ステートメントのドリルダウンが必要であることがわかりました。 –

関連する問題