Vba excel переместить фокус на ячейку
Процедура, привязянная к кнопке
[vba]
Private Sub Out_for_Printer_Click()
Dim i As Integer
i = ActiveCell.Row
If i > 3 Then ‘ не печатать шапку
Application.ScreenUpdating = False
Application.Volatile True
Worksheets("Выборка").Cells(1, 1).Value = Worksheets("Таблица").Cells(i, 1).Value
Worksheets("Бланк").PrintOut Copies:=1, Collate:=True
Application.ScreenUpdating = True
End If
Sheets("Таблица").Select
End Sub
- лист "Таблица" - заполняется переменной информацией. Имеет ключевые поля в колонке "А"
- лист "Выборка" - при вводе номера ключевого поля в ячейку "А1", выполняется выборка инфы из листа "Таблица" и некая ее обработка
- лист "Бланк" - бланк документа, заполняется обработанной инфой из листа "Выборка"
- из строки, где находится активная ячейка выбирается ключевое поле
- присваивается ячейке А1 листа "Выборка"
- обрабатывается инфа на листе "Выборка"
- заполняется лист "Бланк"
- лист "Бланк" отправляется на печать
- возвращается на лист "Таблица"
- фокус мыши расположен на кнопке "Печать" (лист "Таблица")
- а фокус активной ячейки - где-то в недрах таблицы
Процедура, привязянная к кнопке
[vba]
Private Sub Out_for_Printer_Click()
Dim i As Integer
i = ActiveCell.Row
If i > 3 Then ‘ не печатать шапку
Application.ScreenUpdating = False
Application.Volatile True
Worksheets("Выборка").Cells(1, 1).Value = Worksheets("Таблица").Cells(i, 1).Value
Worksheets("Бланк").PrintOut Copies:=1, Collate:=True
Application.ScreenUpdating = True
End If
Sheets("Таблица").Select
End Sub
- лист "Таблица" - заполняется переменной информацией. Имеет ключевые поля в колонке "А"
- лист "Выборка" - при вводе номера ключевого поля в ячейку "А1", выполняется выборка инфы из листа "Таблица" и некая ее обработка
- лист "Бланк" - бланк документа, заполняется обработанной инфой из листа "Выборка"
- из строки, где находится активная ячейка выбирается ключевое поле
- присваивается ячейке А1 листа "Выборка"
- обрабатывается инфа на листе "Выборка"
- заполняется лист "Бланк"
- лист "Бланк" отправляется на печать
- возвращается на лист "Таблица"
- фокус мыши расположен на кнопке "Печать" (лист "Таблица")
- а фокус активной ячейки - где-то в недрах таблицы
Процедура, привязянная к кнопке
[vba]
Private Sub Out_for_Printer_Click()
Dim i As Integer
i = ActiveCell.Row
If i > 3 Then ‘ не печатать шапку
Application.ScreenUpdating = False
Application.Volatile True
Worksheets("Выборка").Cells(1, 1).Value = Worksheets("Таблица").Cells(i, 1).Value
Worksheets("Бланк").PrintOut Copies:=1, Collate:=True
Application.ScreenUpdating = True
End If
Sheets("Таблица").Select
End Sub
Заранее спасибо Автор - Alex59
Дата добавления - 19.02.2019 в 10:41
Метод SetFocus перемещает фокус в указанную форму, указанный контроль на активной форме или указанное поле на активной таблице данных.
Синтаксис
выражения. SetFocus
выражение: переменная, представляющая объект Form.
Примечания
Используйте метод SetFocus , когда нужно, чтобы определенное поле или управление было сосредоточено таким образом, чтобы все входные данные пользователя были направлены на этот объект.
Чтобы прочитать некоторые свойства управления, необходимо убедиться, что управление имеет фокус. Например, текстовое поле должно быть сосредоточено перед чтением его свойства Text .
Другие свойства можно установить только в том случае, если у управления нет фокуса. Например, нельзя установить видимые или включенные свойства управления на False (0), если этот контроль имеет фокус.
Вы также можете использовать метод SetFocus для навигации в форме в соответствии с определенными условиями. Например, если пользователь выбирает не применимый для первого набора вопросов в форме, которая является вопросником, код Visual Basic может автоматически пропустить вопросы в этом наборе и переместить фокус на первый контроль в следующем наборе вопросов.
Фокус можно переместить только в видимый контроль или форму. Форма и элементы управления формы не видны до завершения события Нагрузка формы. Поэтому, если для перемещения фокуса в эту форму используется метод SetFocus в событии Нагрузка формы, перед методом SetFocus необходимо использовать метод repaint.
Нельзя переместить фокус на управление, если его свойство Включено настроено на False. Прежде чем переместить фокус на этот контроль, необходимо установить свойство Включено управления в True (1). Однако можно переместить фокус на управление, если его заблокированное свойство настроено на True.
Если форма содержит элементы управления, для которых свойство Включено настроено на True, нельзя переместить фокус в сам форму. Фокус можно переместить только на элементы управления формы. В этом случае, если вы пытаетесь использовать SetFocus для перемещения фокуса в форму, фокус заданной для управления формой, которая последний раз получала фокус.
Используйте метод SetFocus для перемещения фокуса в подформу, которая является типом управления. Вы также можете переместить фокус на управление на подформе с помощью метода SetFocus дважды, перемещая фокус сначала на подформу, а затем на управление на подформе.
Пример
В следующем примере метод SetFocus перемещает фокус на текстовое поле EmployeeID в форме Employees .
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Метод SetFocus перемещает фокус в указанную форму, указанный контроль на активной форме или указанное поле на активной таблице данных.
Синтаксис
выражения. SetFocus
выражение Переменная, представляющие объект TextBox .
Возвращаемое значение
Примечания
Используйте метод SetFocus , когда нужно, чтобы определенное поле или управление было сосредоточено таким образом, чтобы все входные данные пользователя были направлены на этот объект.
Чтобы прочитать некоторые свойства управления, необходимо убедиться, что управление имеет фокус. Например, текстовое поле должно быть сосредоточено перед чтением его свойства Text .
Другие свойства можно установить только в том случае, если у управления нет фокуса. Например, нельзя установить видимые или включенные свойства управления на False (0), если этот контроль имеет фокус.
Вы также можете использовать метод SetFocus для навигации в форме в соответствии с определенными условиями. Например, если пользователь выбирает не применимый для первого набора вопросов в форме, которая является вопросником, код Visual Basic может автоматически пропустить вопросы в этом наборе и переместить фокус на первый контроль в следующем наборе вопросов.
Фокус можно переместить только в видимый контроль или форму. Форма и элементы управления формы не видны до завершения события Нагрузка формы. Поэтому, если для перемещения фокуса в эту форму используется метод SetFocus в событии Нагрузка формы, перед методом SetFocus необходимо использовать метод repaint.
Нельзя переместить фокус на управление, если его свойство Включено настроено на False. Прежде чем переместить фокус на этот контроль, необходимо установить свойство Включено управления в True (1). Однако можно переместить фокус на управление, если его заблокированное свойство настроено на True.
Если форма содержит элементы управления, для которых свойство Включено настроено на True, нельзя переместить фокус в сам форму. Фокус можно переместить только на элементы управления формы. В этом случае, если вы пытаетесь использовать SetFocus для перемещения фокуса в форму, фокус заданной для управления формой, которая последний раз получала фокус.
Используйте метод SetFocus для перемещения фокуса в подформу, которая является типом управления. Вы также можете переместить фокус на управление на подформе с помощью метода SetFocus дважды, перемещая фокус сначала на подформу, а затем на управление на подформе.
Пример
В следующем примере метод SetFocus перемещает фокус на текстовое поле EmployeeID в форме Employees .
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Метод SetFocus перемещает фокус в указанную форму, указанный контроль на активной форме или указанное поле на активной таблице данных.
Синтаксис
выражения. SetFocus
выражение Переменная, представляюная объект Control .
Возвращаемое значение
Примечания
Используйте метод SetFocus , когда нужно, чтобы определенное поле или управление было сосредоточено таким образом, чтобы все входные данные пользователя были направлены на этот объект.
Чтобы прочитать некоторые свойства управления, необходимо убедиться, что управление имеет фокус. Например, текстовое поле должно быть сосредоточено перед чтением его свойства Text .
Другие свойства можно установить только в том случае, если у управления нет фокуса. Например, нельзя установить видимые или включенные свойства управления на False (0), если этот контроль имеет фокус.
Вы также можете использовать метод SetFocus для навигации в форме в соответствии с определенными условиями. Например, если пользователь выбирает не применимый для первого набора вопросов в форме, которая является вопросником, код Visual Basic может автоматически пропустить вопросы в этом наборе и переместить фокус на первый контроль в следующем наборе вопросов.
Фокус можно переместить только в видимый контроль или форму. Форма и элементы управления формы не видны до завершения события Нагрузка формы. Поэтому, если для перемещения фокуса в эту форму используется метод SetFocus в событии Нагрузка формы, перед методом SetFocus необходимо использовать метод repaint.
Нельзя переместить фокус на управление, если его свойство Включено настроено на False. Прежде чем переместить фокус на этот контроль, необходимо установить свойство Включено управления в True (1). Однако можно переместить фокус на управление, если его заблокированное свойство настроено на True.
Если форма содержит элементы управления, для которых свойство Включено настроено на True, нельзя переместить фокус в сам форму. Фокус можно переместить только на элементы управления формы. В этом случае, если вы пытаетесь использовать SetFocus для перемещения фокуса в форму, фокус заданной для управления формой, которая последний раз получала фокус.
Используйте метод SetFocus для перемещения фокуса в подформу, которая является типом управления. Вы также можете переместить фокус на управление на подформе с помощью метода SetFocus дважды, перемещая фокус сначала на подформу, а затем на управление на подформе.
Пример
В следующем примере метод SetFocus перемещает фокус на текстовое поле EmployeeID в форме Employees .
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Здравствуйте! Помогите пожалуйста нубасу.
Предыстория:
Был ноутбук с 7кой и с 10 офисом - все работало.
Купили ноутбук с 10-кой и установил тот-же 10 офис. Работать перестало.
Суть проблемы:
В упрощенном виде вот такой код:
[vba]
shifr = ActiveCell.FormulaR1C1
SendKeys "", True
nazv = ActiveCell.FormulaR1C1
SendKeys "", True
Debug.Print shifr
Debug.Print nazv
Использовалось так: Ставлю фокус на ячейку с шифром, жму кнопку, получаю 2 переменные с шифром и названием. А теперь по непонятным мне причинам вторая переменная всегда остается такой же как и первая. Я даже визуально вижу как фокус прыгает туда-сюда. Но nazv хоть тресни имеет значение из поля Шифр (shifr)
Пс. По offset срабатывает, но использовать его мешают объединенные ячейки. Не получается. т.к. он берет значение из исходной строки. Или я что-то не так делаю.
Здравствуйте! Помогите пожалуйста нубасу.
Предыстория:
Был ноутбук с 7кой и с 10 офисом - все работало.
Купили ноутбук с 10-кой и установил тот-же 10 офис. Работать перестало.
Суть проблемы:
В упрощенном виде вот такой код:
[vba]
shifr = ActiveCell.FormulaR1C1
SendKeys "", True
nazv = ActiveCell.FormulaR1C1
SendKeys "", True
Debug.Print shifr
Debug.Print nazv
Использовалось так: Ставлю фокус на ячейку с шифром, жму кнопку, получаю 2 переменные с шифром и названием. А теперь по непонятным мне причинам вторая переменная всегда остается такой же как и первая. Я даже визуально вижу как фокус прыгает туда-сюда. Но nazv хоть тресни имеет значение из поля Шифр (shifr)
Пс. По offset срабатывает, но использовать его мешают объединенные ячейки. Не получается. т.к. он берет значение из исходной строки. Или я что-то не так делаю.
Предыстория:
Был ноутбук с 7кой и с 10 офисом - все работало.
Купили ноутбук с 10-кой и установил тот-же 10 офис. Работать перестало.
Суть проблемы:
В упрощенном виде вот такой код:
[vba]
shifr = ActiveCell.FormulaR1C1
SendKeys "", True
nazv = ActiveCell.FormulaR1C1
SendKeys "", True
Debug.Print shifr
Debug.Print nazv
Использовалось так: Ставлю фокус на ячейку с шифром, жму кнопку, получаю 2 переменные с шифром и названием. А теперь по непонятным мне причинам вторая переменная всегда остается такой же как и первая. Я даже визуально вижу как фокус прыгает туда-сюда. Но nazv хоть тресни имеет значение из поля Шифр (shifr)
Пс. По offset срабатывает, но использовать его мешают объединенные ячейки. Не получается. т.к. он берет значение из исходной строки. Или я что-то не так делаю.
Автор - Storm114
Дата добавления - 12.12.2016 в 11:30
Читайте также: