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

Вход

Регистрация

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

 

= Мир MS Excel/VBA. Выделить диапазон. Что делаю не так? - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
VBA. Выделить диапазон. Что делаю не так?
Michael_S Дата: Воскресенье, 23.10.2011, 02:43 | Сообщение № 1
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Задача такая - вызвать форму, выделить диапазон, закрыть форму. При этом диапазон должен остаться выделенным. Что у меня не так?
К сообщению приложен файл: 8711047.xlsm (17.5 Kb)
 
Ответить
СообщениеЗадача такая - вызвать форму, выделить диапазон, закрыть форму. При этом диапазон должен остаться выделенным. Что у меня не так?

Автор - Michael_S
Дата добавления - 23.10.2011 в 02:43
RAN Дата: Воскресенье, 23.10.2011, 03:10 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
В общий модуль
Code
Sub qqq()
Dim MHL$
MHL = Application.InputBox("Диапазон Михаила", , , , , , , 8).Address
Range(MHL).Select
End Sub

А форма зачем?


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеВ общий модуль
Code
Sub qqq()
Dim MHL$
MHL = Application.InputBox("Диапазон Михаила", , , , , , , 8).Address
Range(MHL).Select
End Sub

А форма зачем?

Автор - RAN
Дата добавления - 23.10.2011 в 03:10
Michael_S Дата: Воскресенье, 23.10.2011, 03:28 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Quote (RAN)
А форма зачем?

Да я почитал справку по InputBox - не нашел, как это делать.

зы. Еще один вопрос, попутно. Знаем букву столбца,например "C". Как определить его номер (3) - считать, или есть более простой вариант?
 
Ответить
Сообщение
Quote (RAN)
А форма зачем?

Да я почитал справку по InputBox - не нашел, как это делать.

зы. Еще один вопрос, попутно. Знаем букву столбца,например "C". Как определить его номер (3) - считать, или есть более простой вариант?

Автор - Michael_S
Дата добавления - 23.10.2011 в 03:28
Pavel55 Дата: Воскресенье, 23.10.2011, 04:23 | Сообщение № 4
Группа: Друзья
Ранг: Прохожий
Сообщений: 5
Репутация: 6 ±
Замечаний: 0% ±

MsgBox Cells(1, "C").Column
 
Ответить
СообщениеMsgBox Cells(1, "C").Column

Автор - Pavel55
Дата добавления - 23.10.2011 в 04:23
Pavel55 Дата: Воскресенье, 23.10.2011, 04:30 | Сообщение № 5
Группа: Друзья
Ранг: Прохожий
Сообщений: 5
Репутация: 6 ±
Замечаний: 0% ±

По поводу диапазона, я бы посоветовал доработать вариант от Ran

Sub qqq2()
Dim Rng As Range
On Error Resume Next
Set Rng = Application.InputBox("Диапазон Михаила", , , , , , , 8)
On Error GoTo 0
If Rng Is Nothing Then Exit Sub
Rng.Select
End Sub

1) данный код позволяет корректно обрабатывать нажатие кнопки "Отмена" в InputBox
2) мы сразу присваиваем объектной переменной диапазон с корректным типом Range, что упростит обращение к нему в коде, т.к. сразу пишем Rng... и дальше (вместо Range(строка)....)
 
Ответить
СообщениеПо поводу диапазона, я бы посоветовал доработать вариант от Ran

Sub qqq2()
Dim Rng As Range
On Error Resume Next
Set Rng = Application.InputBox("Диапазон Михаила", , , , , , , 8)
On Error GoTo 0
If Rng Is Nothing Then Exit Sub
Rng.Select
End Sub

1) данный код позволяет корректно обрабатывать нажатие кнопки "Отмена" в InputBox
2) мы сразу присваиваем объектной переменной диапазон с корректным типом Range, что упростит обращение к нему в коде, т.к. сразу пишем Rng... и дальше (вместо Range(строка)....)

Автор - Pavel55
Дата добавления - 23.10.2011 в 04:30
Michael_S Дата: Воскресенье, 23.10.2011, 05:21 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Quote (_Boroda_)
Можно еще так: n = AscW("C") - 64

А если столбец "AB"?
 
Ответить
Сообщение
Quote (_Boroda_)
Можно еще так: n = AscW("C") - 64

А если столбец "AB"?

Автор - Michael_S
Дата добавления - 23.10.2011 в 05:21
_Boroda_ Дата: Воскресенье, 23.10.2011, 05:29 | Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 16714
Репутация: 6503 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Тогда конечно проще
Cells(1, "C").Column
или
Range("C" & 1).Column


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТогда конечно проще
Cells(1, "C").Column
или
Range("C" & 1).Column

Автор - _Boroda_
Дата добавления - 23.10.2011 в 05:29
nerv Дата: Воскресенье, 23.10.2011, 16:34 | Сообщение № 8
Группа: Редакторы
Ранг: Обитатель
Сообщений: 431
Репутация: 193 ±
Замечаний: 0% ±

Quote (Michael_S)
А если столбец "AB"?


Code
Sub io()
MsgBox Columns("C").Column
MsgBox Columns("AB").Column
End Sub


Quote (Michael_S)
Задача такая - вызвать форму, выделить диапазон


Code
Sub io2()
On Error Resume Next
Application.InputBox("Message", "Title", Type:=8).Select
End Sub


Quote (Michael_S)
Да я почитал справку по InputBox - не нашел, как это делать.

Курсор в InputBox, F1. Тогда сразу поймете почему Type:=8


Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


YM 41001156540584 / WM WMR R21924176233

https://github.com/nervgh/vba


Сообщение отредактировал nerv - Воскресенье, 23.10.2011, 16:36
 
Ответить
Сообщение
Quote (Michael_S)
А если столбец "AB"?


Code
Sub io()
MsgBox Columns("C").Column
MsgBox Columns("AB").Column
End Sub


Quote (Michael_S)
Задача такая - вызвать форму, выделить диапазон


Code
Sub io2()
On Error Resume Next
Application.InputBox("Message", "Title", Type:=8).Select
End Sub


Quote (Michael_S)
Да я почитал справку по InputBox - не нашел, как это делать.

Курсор в InputBox, F1. Тогда сразу поймете почему Type:=8

Автор - nerv
Дата добавления - 23.10.2011 в 16:34
  • Страница 1 из 1
  • 1
Поиск:

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