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

Вход

Регистрация

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

 

= Мир MS Excel/Активация ячеек разных диапазонов. - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Активация ячеек разных диапазонов. (Макросы/Sub)
Активация ячеек разных диапазонов.
Сергей13 Дата: Понедельник, 11.06.2018, 16:23 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Здравствуйте.
Возможно ли, как-то программно произвести активацию ячеек в разных диапазонах.
Пытался путем копирования и вставки в тоже место, но выходит сообщение, что данная команда не приемлема для несвязанных диапазонов.
[vba]
Код
Sub Макрос1()
Range("A1,C1,E1").Select
Selection.Copy
ActiveSheet.Paste
End Sub
[/vba]
 
Ответить
СообщениеЗдравствуйте.
Возможно ли, как-то программно произвести активацию ячеек в разных диапазонах.
Пытался путем копирования и вставки в тоже место, но выходит сообщение, что данная команда не приемлема для несвязанных диапазонов.
[vba]
Код
Sub Макрос1()
Range("A1,C1,E1").Select
Selection.Copy
ActiveSheet.Paste
End Sub
[/vba]

Автор - Сергей13
Дата добавления - 11.06.2018 в 16:23
RAN Дата: Понедельник, 11.06.2018, 18:20 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4817
Репутация: 968 ±
Замечаний: 0% ±

2010
Конечно возможно.
В коде выше с этим успешно справляется строка
[vba]
Код
Range("A1,C1,E1").Select
[/vba]
Если есть принципиальные возражения против Select, замените его на Activate.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеКонечно возможно.
В коде выше с этим успешно справляется строка
[vba]
Код
Range("A1,C1,E1").Select
[/vba]
Если есть принципиальные возражения против Select, замените его на Activate.

Автор - RAN
Дата добавления - 11.06.2018 в 18:20
Сергей13 Дата: Понедельник, 11.06.2018, 18:51 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
RAN, Нет, активация не помогла, только таким образом

[vba]
Код
Sub Макрос1()

Range("A1").Select
Selection.Copy
ActiveSheet.Paste

Range("С1").Select
Selection.Copy
ActiveSheet.Paste

Range("F1").Select
Selection.Copy
ActiveSheet.Paste

End Sub

[/vba]Но с учетом того что таким образом необходимо пройти 30 ячеек то процесс происходит длительно.
Можно ли как-то структурировать данный код, дабы сократить время выполнения?


Сообщение отредактировал Сергей13 - Понедельник, 11.06.2018, 18:52
 
Ответить
СообщениеRAN, Нет, активация не помогла, только таким образом

[vba]
Код
Sub Макрос1()

Range("A1").Select
Selection.Copy
ActiveSheet.Paste

Range("С1").Select
Selection.Copy
ActiveSheet.Paste

Range("F1").Select
Selection.Copy
ActiveSheet.Paste

End Sub

[/vba]Но с учетом того что таким образом необходимо пройти 30 ячеек то процесс происходит длительно.
Можно ли как-то структурировать данный код, дабы сократить время выполнения?

Автор - Сергей13
Дата добавления - 11.06.2018 в 18:51
RAN Дата: Понедельник, 11.06.2018, 19:15 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4817
Репутация: 968 ±
Замечаний: 0% ±

2010
Сударь, ответ на вопрос темы дан.
Что у вас не работает, почему, и что вам нужно сделать, к вопросу темы не имеет ни малейшего отношения.

Копировать ячейку в себя? Это вообще полный бред!


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеСударь, ответ на вопрос темы дан.
Что у вас не работает, почему, и что вам нужно сделать, к вопросу темы не имеет ни малейшего отношения.

Копировать ячейку в себя? Это вообще полный бред!

Автор - RAN
Дата добавления - 11.06.2018 в 19:15
boa Дата: Понедельник, 11.06.2018, 21:14 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 134
Репутация: 20 ±
Замечаний: 0% ±

2013, 2016
Сергей13,
Если вам надо преобразовать формулы в значение, то это делается так(просто пытаюсь догадаться что вам надо):
[vba]
Код
Range("A1,C1,E1").Select
For Each MyCell In Selection.SpecialCells(xlCellTypeFormulas)
     MyCell.Formula = MyCell.Value
Next
[/vba]
а выделение(точнее выбор) ячеек, как уже выше упомянул RAN, делается Селектом.
Активной(.Activate) может быть лишь одна ячейка из выбранных
Цитата Сергей13, 11.06.2018 в 16:23, в сообщении № 1 ()
Пытался путем копирования и вставки в тоже место, но выходит сообщение, что данная команда не приемлема для несвязанных диапазонов.
Да, в таком контексте не приемлема.Хоть с макрореодером, хоть без. Но, в принципе, вставлять значения из разных ячеек в разные ячейки инмтрументами VBA возможно, но Excel'ю надо по порядку обяснить, что и куда вставлять. Ибо он мысли не читает :)
Например:
[vba]
Код
Range("A1,C1,E1").Select
For Each MyCell In Selection
    MyCell.FormulaR1C1 = MyCell.Value
Next
[/vba]




Сообщение отредактировал boa - Понедельник, 11.06.2018, 21:41
 
Ответить
СообщениеСергей13,
Если вам надо преобразовать формулы в значение, то это делается так(просто пытаюсь догадаться что вам надо):
[vba]
Код
Range("A1,C1,E1").Select
For Each MyCell In Selection.SpecialCells(xlCellTypeFormulas)
     MyCell.Formula = MyCell.Value
Next
[/vba]
а выделение(точнее выбор) ячеек, как уже выше упомянул RAN, делается Селектом.
Активной(.Activate) может быть лишь одна ячейка из выбранных
Цитата Сергей13, 11.06.2018 в 16:23, в сообщении № 1 ()
Пытался путем копирования и вставки в тоже место, но выходит сообщение, что данная команда не приемлема для несвязанных диапазонов.
Да, в таком контексте не приемлема.Хоть с макрореодером, хоть без. Но, в принципе, вставлять значения из разных ячеек в разные ячейки инмтрументами VBA возможно, но Excel'ю надо по порядку обяснить, что и куда вставлять. Ибо он мысли не читает :)
Например:
[vba]
Код
Range("A1,C1,E1").Select
For Each MyCell In Selection
    MyCell.FormulaR1C1 = MyCell.Value
Next
[/vba]

Автор - boa
Дата добавления - 11.06.2018 в 21:14
Сергей13 Дата: Понедельник, 11.06.2018, 22:28 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
boa, на своем уровне для себя для своей работы занимаюсь лепиловым, не столь важно как, главное чтобы работало.
По сути есть некие данные которые активируя или двойным кликом по ячейкам (в количестве 30) а далее Enter или вводом дополнительных данных то они (данные) при событии вода данных отображаются в других таблицах учета, поэтому приходится активировать данные ячейки путем копирования ячейки в себя, конечно в корне неправильно но работает, только долго по времени.
 
Ответить
Сообщениеboa, на своем уровне для себя для своей работы занимаюсь лепиловым, не столь важно как, главное чтобы работало.
По сути есть некие данные которые активируя или двойным кликом по ячейкам (в количестве 30) а далее Enter или вводом дополнительных данных то они (данные) при событии вода данных отображаются в других таблицах учета, поэтому приходится активировать данные ячейки путем копирования ячейки в себя, конечно в корне неправильно но работает, только долго по времени.

Автор - Сергей13
Дата добавления - 11.06.2018 в 22:28
boa Дата: Вторник, 12.06.2018, 00:19 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 134
Репутация: 20 ±
Замечаний: 0% ±

2013, 2016
Сергей13, а вы попробуйте сформулировать цель и задачи, приложите файл с примером «что было» и «что надо», и возможно вам подскажут более оптимальное решение...
оно ж не удобно чесать правое ухо левой рукой...

P.S. я дико извиняюсь, но ваш последний пост... что-то типа: сел на огурец и поехал в Москву, как любила говорить моя школьная учительница по физике




Сообщение отредактировал boa - Вторник, 12.06.2018, 00:28
 
Ответить
СообщениеСергей13, а вы попробуйте сформулировать цель и задачи, приложите файл с примером «что было» и «что надо», и возможно вам подскажут более оптимальное решение...
оно ж не удобно чесать правое ухо левой рукой...

P.S. я дико извиняюсь, но ваш последний пост... что-то типа: сел на огурец и поехал в Москву, как любила говорить моя школьная учительница по физике

Автор - boa
Дата добавления - 12.06.2018 в 00:19
Сергей13 Дата: Вторник, 12.06.2018, 01:06 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
boa, По сути да, на огурце, но я же не программист, а водила, просто необходимо было для упрощения некого учета что-то слепить в excel и слепил, конечно не фонтан, но все таки здорово помогает по отношению к куче бумажек и калькуляторов.
А ныне пытаюсь просто дополнить, улучшить.


Сообщение отредактировал Сергей13 - Вторник, 12.06.2018, 01:08
 
Ответить
Сообщениеboa, По сути да, на огурце, но я же не программист, а водила, просто необходимо было для упрощения некого учета что-то слепить в excel и слепил, конечно не фонтан, но все таки здорово помогает по отношению к куче бумажек и калькуляторов.
А ныне пытаюсь просто дополнить, улучшить.

Автор - Сергей13
Дата добавления - 12.06.2018 в 01:06
StoTisteg Дата: Вторник, 12.06.2018, 13:31 | Сообщение № 9
Группа: Авторы
Ранг: Ветеран
Сообщений: 920
Репутация: 78 ±
Замечаний: 0% ±

Excel 2010
boa, я бы написал[vba]
Код
For Each MyCell In Selection.SpecialCells(xlCellTypeFormulas)
    MyCell.Value = MyCell.Text
Next
[/vba] а то мало ли какая там формула.


Проверь всё. ThisWorkbook.Save. On Error Resume Next.
 
Ответить
Сообщениеboa, я бы написал[vba]
Код
For Each MyCell In Selection.SpecialCells(xlCellTypeFormulas)
    MyCell.Value = MyCell.Text
Next
[/vba] а то мало ли какая там формула.

Автор - StoTisteg
Дата добавления - 12.06.2018 в 13:31
RAN Дата: Вторник, 12.06.2018, 20:15 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4817
Репутация: 968 ±
Замечаний: 0% ±

2010
Активной(.Activate) может быть лишь одна ячейка из выбранных

Не надо путать метод Activate с объектом Activecell.


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
Активной(.Activate) может быть лишь одна ячейка из выбранных

Не надо путать метод Activate с объектом Activecell.

Автор - RAN
Дата добавления - 12.06.2018 в 20:15
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Активация ячеек разных диапазонов. (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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