Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Неправильно обрабатывается команда активации листа - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Неправильно обрабатывается команда активации листа
DrRoy Дата: Пятница, 31.05.2013, 14:45 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

В прилагаемом файле на листах заказов есть кнопка ПЕЧАТЬ с кодом:

[vba]
Код
Private Sub CommandButton1_Click()
          Sheets("Накладна").Copy After:=Sheets(1)
          Sheets("Накладна (2)").Name = "Печать"
          Sheets(ActiveSheet.Index - 1).Select
          Worksheets("Печать").Range("C4").Value = Range("A" & ActiveCell.Row).Text
          Worksheets("Печать").Range("H3").Value = Range("F1").Text
          Sheets("Печать").Activate
          x = 27
             Do While x <> 5
          x = x - 1
              If Cells(x, 8) = 0 Then
                Cells(x, 8).EntireRow.Delete
              End If
             Loop
End Sub
[/vba]

В этом коде почему-то не срабатывает строка

[vba]
Код
Sheets("Печать").Activate
[/vba]

Точнее, команда срабатывает, но цикл, написанный после нее, выполняется не на созданном листе Печать, а на исходном листе.
Пробовал также вместо Activate писать Select, а также оба варианта сразу, но не хочет. Что я делаю не так?
К сообщению приложен файл: 0719772.xls (55.5 Kb)


Сообщение отредактировал DrRoy - Пятница, 31.05.2013, 15:07
 
Ответить
СообщениеВ прилагаемом файле на листах заказов есть кнопка ПЕЧАТЬ с кодом:

[vba]
Код
Private Sub CommandButton1_Click()
          Sheets("Накладна").Copy After:=Sheets(1)
          Sheets("Накладна (2)").Name = "Печать"
          Sheets(ActiveSheet.Index - 1).Select
          Worksheets("Печать").Range("C4").Value = Range("A" & ActiveCell.Row).Text
          Worksheets("Печать").Range("H3").Value = Range("F1").Text
          Sheets("Печать").Activate
          x = 27
             Do While x <> 5
          x = x - 1
              If Cells(x, 8) = 0 Then
                Cells(x, 8).EntireRow.Delete
              End If
             Loop
End Sub
[/vba]

В этом коде почему-то не срабатывает строка

[vba]
Код
Sheets("Печать").Activate
[/vba]

Точнее, команда срабатывает, но цикл, написанный после нее, выполняется не на созданном листе Печать, а на исходном листе.
Пробовал также вместо Activate писать Select, а также оба варианта сразу, но не хочет. Что я делаю не так?

Автор - DrRoy
Дата добавления - 31.05.2013 в 14:45
Саня Дата: Пятница, 31.05.2013, 15:26 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
код написан в модуле класса конкретного листа, поэтому выражение Cells(x, 8) [= Me.Cells(x, 8)] будет относиться именно к тому листу, поэтому
Cells(x, 8) --> Activesheet.Cells(x, 8)
или --> Worksheets("Печать").Cells(x, 8)
 
Ответить
Сообщениекод написан в модуле класса конкретного листа, поэтому выражение Cells(x, 8) [= Me.Cells(x, 8)] будет относиться именно к тому листу, поэтому
Cells(x, 8) --> Activesheet.Cells(x, 8)
или --> Worksheets("Печать").Cells(x, 8)

Автор - Саня
Дата добавления - 31.05.2013 в 15:26
DrRoy Дата: Пятница, 31.05.2013, 15:47 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Спасибо, работает.

Возможно, нужно бы создать новую тему, но спрошу тут.
После печати лист Печать удаляется, после чего строку с заказом нужно покрасить в желтый цвет.
Первое, что пришло на ум, это
[vba]
Код
    Range("A" & ActiveCell.Row:"U" & ActiveCell.Row).Select
      Selection.Interior.ColorIndex = 6
[/vba]
но это синтаксически неправильно.
Подскажите правильную запись, пожалуйста.

Цитата (DrRoy)
нужно бы создать новую тему

[admin]Эта тема закрыта[/admin]
 
Ответить
СообщениеСпасибо, работает.

Возможно, нужно бы создать новую тему, но спрошу тут.
После печати лист Печать удаляется, после чего строку с заказом нужно покрасить в желтый цвет.
Первое, что пришло на ум, это
[vba]
Код
    Range("A" & ActiveCell.Row:"U" & ActiveCell.Row).Select
      Selection.Interior.ColorIndex = 6
[/vba]
но это синтаксически неправильно.
Подскажите правильную запись, пожалуйста.

Цитата (DrRoy)
нужно бы создать новую тему

[admin]Эта тема закрыта[/admin]

Автор - DrRoy
Дата добавления - 31.05.2013 в 15:47
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!