По какой-то причине мой код не работает. Я получаю сообщение «Ошибка 91». Я побежал это нормально с «Для каждого цикла, но это не работает для меня.Проблема с использованием цикла «For» в VBA
Это говорит мне отладить на
strPrint = MsgBox(prompt:="Print " & shtCurrent & "?", Buttons:=vbYesNo + vbExclamation)
, но я не могу найти ничего плохого с ним.
Public Sub PrintWorksheets2()
'declare variables and assign address
Dim strPrint As String, intCount As Integer, wkbHours As Workbook, shtCurrent As Worksheet
Dim intSum As Integer, shtCount As Integer
Set wkbHours = Application.Workbooks("auco6215_HW10_Ex9.xlsm")
shtCount = wkbHours.Sheets.Count
intSum = 0
'ask user if he or she wants to print the worksheet
For intCount = 1 To shtCount
'shtCurrent = wkbHours
intSum = intSum + intCount
strPrint = MsgBox(prompt:="Print " & shtCurrent & "?", Buttons:=vbYesNo + vbExclamation)
If strPrint = vbYes Then 'if user wants to print
shtCurrent.PrintPreview
End If
Next intCount
End Sub
Попробуйте объявить strPrint как вариант вместо строки. – bodjo
Хорошо. Хотя, я объявил это как строку в моем цикле «Для каждого»? –
@bodjo, хороший catch. Еще лучше будет 'VbMsgBoxResult'. –