Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: нужна подсказка по началу цикла Добавлено: 29.06.12 16:34  

Автор вопроса:  oleg
Нужен макрос для нумерации страниц пачки листов.
Задача вроде бы простая, сделал форму с text.box начальной цифрой страницы и последней, кнопку печати:

Private Sub CommandButton1_Click()
Dim i As Integer
    Dim iCount As Integer
Application.ScreenUpdating = False
   Лист1.Cells(53, 8).Value = TextBox1.Text
       ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    i = 1
          For i = TextBox1.Value To TextBox2.Value
        Лист1.Cells(53, 8).Value = Лист1.Cells(53, 8).Value + 1
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
          Next i
UserForm1.TextBox1.Text = ""
UserForm1.TextBox2.Text = ""
Лист1.Cells(53, 8).Value = ""
End Sub

Но засада: начинается печать и заканчивается с поправкой на 1-цу в плюс, то есть при начале цикла сразу добавляется единица.
Подскажите как проще это сделать. Спасибо.

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 oleg



Вопросов: 12
Ответов: 23
 Профиль | | #1 Добавлено: 29.06.12 16:37
Извиняюсь, код такой:


Private Sub CommandButton1_Click()
Dim i As Integer
    ;Dim iCount As Integer
Application.ScreenUpdating = False
   Лист1.Cells(53, 8).Value = TextBox1.Text
          i = 1
     For i = TextBox1.Value To TextBox2.Value
        Лист1.Cells(53, 8).Value = Лист1.Cells(53, 8).Value + 1
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
  Next i
UserForm1.TextBox1.Text = ""
UserForm1.TextBox2.Text = ""
Лист1.Cells(53, 8).Value = ""
End Sub

Ответить

Номер ответа: 2
Автор ответа:
 AxeL



ICQ: 264730390 

Вопросов: 2
Ответов: 106
 Профиль | | #2 Добавлено: 02.07.12 04:40
заносишь начальное значение страницы - лишняя строчка...
  1. Лист1.Cells(53, 8).Value = TextBox1.Text

лишнее...
  1. Лист1.Cells(53, 8).Value + 1

нужно просто подставлять i, которая проходит в цикле по всему диапазону заданных страниц
  1. Лист1.Cells(53, 8).Value = i

Ответить

Номер ответа: 3
Автор ответа:
 AxeL



ICQ: 264730390 

Вопросов: 2
Ответов: 106
 Профиль | | #3 Добавлено: 02.07.12 04:48
Примерно так должен выглядеть твой код:
  1. Private Sub CommandButton1_Click()
  2. Dim i As Integer
  3. 'Dim iCount As Integer ' зачем объявлять, если ее не используешь?
  4. Application.ScreenUpdating = False
  5.      For i = TextBox1.Value To TextBox2.Value
  6.         Лист1.Cells(53, 8).Value = i
  7. ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
  8. Next i
  9. UserForm1.TextBox1.Text = ""
  10. UserForm1.TextBox2.Text = ""
  11. Лист1.Cells(53, 8).Value = ""
  12. Application.ScreenUpdating = True
  13. End Sub

Ответить

Номер ответа: 4
Автор ответа:
 oleg



Вопросов: 12
Ответов: 23
 Профиль | | #4 Добавлено: 02.07.12 15:52
Спасибо, учусь методом "тыка", поэтому такие ляпы. Все работает как надо.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам