Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Переместиться в определенную ячейку в excel / 13 сообщений из 13, страница 1 из 1
14.07.2015, 21:41
    #39007376
Андрей_707
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переместиться в определенную ячейку в excel
Помогите решить проблему. Необходимо переместиться (или получить фокус) в определенной ячейке в excel. Т.е есть таблица, со списком городов. В верху таблицы есть раскрывающийся список с этими городами, необходимо при выборе из этого раскрывающегося списка, курсор поместился на город из таблицы.
Т.е что то типа поиска.
...
Рейтинг: 0 / 0
14.07.2015, 22:25
    #39007398
hclubmk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переместиться в определенную ячейку в excel
Андрей_707В верху таблицы есть раскрывающийся список Какой список? Как организован? Штатный элемент управления, ActiveX, через проверку данных? Не много вопросов или самому догадаться?
...
Рейтинг: 0 / 0
14.07.2015, 22:36
    #39007401
Андрей_707
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переместиться в определенную ячейку в excel
Список через проверку данных, но можно организовать по другому, главное чтобы работало
...
Рейтинг: 0 / 0
14.07.2015, 22:50
    #39007406
hclubmk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переместиться в определенную ячейку в excel
Если можно по-другому, то через штатный список как-то так
...
Рейтинг: 0 / 0
14.07.2015, 23:06
    #39007410
hclubmk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переместиться в определенную ячейку в excel
Через проверку данных как-то так
...
Рейтинг: 0 / 0
14.07.2015, 23:27
    #39007412
hclubmk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переместиться в определенную ячейку в excel
Что касаемо варианта с проверкой данных, наверно, следующий вариант будет более правильным:
Код: vbnet
1.
2.
3.
4.
5.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address() = "$A$1" Then
    Worksheets(1).Range(Application.ConvertFormula(Replace(Range("A1").Validation.Formula1, "=", ""), xlR1C1, xlA1)).Find(What:=Range("A1").Value, LookIn:=xlValues).Select
End If
End Sub
...
Рейтинг: 0 / 0
15.07.2015, 20:08
    #39008241
Андрей_707
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переместиться в определенную ячейку в excel
hclubmk, спасибо, все получилось.
...
Рейтинг: 0 / 0
18.09.2015, 21:07
    #39055695
Андрей_707
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переместиться в определенную ячейку в excel
hclubmkЧто касаемо варианта с проверкой данных, наверно, следующий вариант будет более правильным:
Код: vbnet
1.
2.
3.
4.
5.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address() = "$A$1" Then
    Worksheets(1).Range(Application.ConvertFormula(Replace(Range("A1").Validation.Formula1, "=", ""), xlR1C1, xlA1)).Find(What:=Range("A1").Value, LookIn:=xlValues).Select
End If
End Sub



Подскажите как в этот код вставить обработку ошибок? Т.к если то что введенные в ячейку данные не обнаружены, то появляется ошибка. Хотелось бы чтобы появлялся MsgBox. Спасибо.
...
Рейтинг: 0 / 0
18.09.2015, 23:00
    #39055749
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переместиться в определенную ячейку в excel
Андрей_707,
а почему проверка данных пропускает значения, которые не обнаруживаются? Там только предупреждение, что ли?
У меня формула проверки дает диапазон в стиле А1, так что работает так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address() <> "$A$1" Then Exit Sub
  If Target = "" Then Exit Sub
  Set Target = Range(Mid(Target.Validation.Formula1, 2)).Find(What:=Target.Value, LookIn:=xlValues)
  If Target Is Nothing Then
    MsgBox "Не найдено"
  Else
    Target.Select
  End If
End Sub
...
Рейтинг: 0 / 0
19.09.2015, 16:11
    #39056010
Андрей_707
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переместиться в определенную ячейку в excel
Казанский,
Нет, просто хочу чуть переделать поиск. Тот вариант уже не подходит.

Теперь нужно вводить в ячейку (например А1) текст, при нажатии ввод, он должен искаться в столбце B1:B1000, и если не найден, выдавать сообщение.
...
Рейтинг: 0 / 0
19.09.2015, 16:39
    #39056029
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переместиться в определенную ячейку в excel
Просто замените область поиска
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address() <> "$A$1" Then Exit Sub
  If Target = "" Then Exit Sub
  Set Target = Range("B1:B1000").Find(What:=Target.Value, LookIn:=xlValues)
  If Target Is Nothing Then
    MsgBox "Не найдено"
  Else
    Target.Select
  End If
End Sub
...
Рейтинг: 0 / 0
19.09.2015, 17:00
    #39056041
Андрей_707
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переместиться в определенную ячейку в excel
Казанский,
Спасибо все работает.
А еще как добавить в MsgBox "Не найдено", то что было введено в ячейку? т.е "Введенное значение ____ не найдено"
...
Рейтинг: 0 / 0
19.09.2015, 19:11
    #39056167
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переместиться в определенную ячейку в excel
Код: vbnet
1.
MsgBox  "Введенное значение " & [A1] & " не найдено"
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Переместиться в определенную ячейку в excel / 13 сообщений из 13, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]