Я пытаюсь создать макрос Excel VBA, чтобы просмотреть список по одной ячейке за раз, чтобы проверить, пуста ли она, а затем сохранить соответствующее количество листов, равное 3-кратному числу непустых ячеек.
Вот код того, что я делаю. Я думал об использовании цикла внутри цикла, но я не был уверен, как его реализовать или будет ли он работать, поэтому я воспользовался этим, что действительно работает.
Sub SaveMacro()
Dim Cell As Variant
Dim bFileSaveAs As Boolean
'For j = 0 To 12
Set Cell = Range("B3")
If Not IsEmpty(Cell) Then
Sheets(Array("L12", "L13-24", "L25-36")).Select
If Not IsEmpty(Cell.Offset(1, 0)) Then
Sheets(Array("L12", "L13-24", "L25-36", "L12 (2)", "L13-24 (2)", "L25-36 (2)")).Select
If Not IsEmpty(Cell.Offset(2, 0)) Then
Sheets(Array("L12", "L13-24", "L25-36" _
, "L12 (2)", "L13-24 (2)", "L25-36 (2)" _
, "L12 (3)", "L13-24 (3)", "L25-36 (3)")).Select
If Not IsEmpty(Cell.Offset(3, 0)) Then
Sheets(Array("L12", "L13-24", "L25-36" _
, "L12 (2)", "L13-24 (2)", "L25-36 (2)" _
, "L12 (3)", "L13-24 (3)", "L25-36 (3)" _
, "L12 (4)", "L13-24 (4)", "L25-36 (4)")).Select
If Not IsEmpty(Cell.Offset(4, 0)) Then
Sheets(Array("L12", "L13-24", "L25-36" _
, "L12 (2)", "L13-24 (2)", "L25-36 (2)" _
, "L12 (3)", "L13-24 (3)", "L25-36 (3)" _
, "L12 (4)", "L13-24 (4)", "L25-36 (4)" _
, "L12 (5)", "L13-24 (5)", "L25-36 (5)")).Select
If Not IsEmpty(Cell.Offset(5, 0)) Then
Sheets(Array("L12", "L13-24", "L25-36" _
, "L12 (2)", "L13-24 (2)", "L25-36 (2)" _
, "L12 (3)", "L13-24 (3)", "L25-36 (3)" _
, "L12 (4)", "L13-24 (4)", "L25-36 (4)" _
, "L12 (5)", "L13-24 (5)", "L25-36 (5)" _
, "L12 (6)", "L13-24 (6)", "L25-36 (6)")).Select
End If
End If
End If
End If
Sheets("L12").Activate
bFileSaveAs = Application.Dialogs(xlDialogSaveAs).Show
End Sub