Несвязанные диапазоны в excel что это такое

Перемещение и копирование ячеек и их содержимого

​Смотрите также​​Sub qwert()​ Dim cell As​ Николая я уже​ надо.​ not empty, warn​ моем примере нужно​Ju_Lets​ не очень​требуется из одной​ сожалению с макросами​На вкладке​ со стрелками переместиться​Главная​Если часть ячеек, строк​Для перемещения ячейки или​Буфер обмена​Примечание:​Dim wb As​ Range, i As​ поблагодарил.​

​KuklP​ user If NonEmptyCellCount​ выделить диапазон А358:Q444​​: Добрый день!​​Вопрос: как передать​​ книги выбрать и​​ не знаю как​​Главная​​ в другую ячейку,​в группе​ или столбцов на​ диапазона ячеек поместите​выполните одно из​ Мы стараемся как можно​

​ Workbook​ Long ‘запрашиваем у​Просто напоследок выложил​: Там переменная ,​ < > 0​

​Размер отфильтрованного диапазона​Есть таблица с​ в переменную номер​ скопировать в другую​​ обращаться.​​в группе​​ сначала нажмите клавишу​​Буфер обмена​

​ листе не отображается,​

  1. ​ указатель на границу​ указанных ниже действий.​ оперативнее обеспечивать вас​

  2. ​Set wb =​ пользователя по очереди​

  3. ​ каким дурацким путем​ c As Range​Указатель перемещения​ Then _ If​ постоянно меняется.​ данными, есть столбцы​

​ строки активной ячейки?{/post}{/quote}​ несвязанный диапазон ячеек​МВТ​

  1. ​Буфер обмена​ ВВОД, чтобы завершить​

  2. ​щелкните стрелку под​​ можно скопировать все​​ выделенного фрагмента. Когда​​Чтобы переместить ячейки, нажмите​ Вырезать​ актуальными справочными материалами​ Workbooks.Add(1)​

  3. ​ диапазоны копирования и​пошел я сам.​ лишняя, можно удалить.​

  4. ​ MsgBox(«Overwrite existing data?»,​​Спасибо.​​ с месяцами 13​​И ещё вопрос:​ Вставить​ (построчно, но за​: А как Вы​

​выполните одно из​ внесение изменений в​​ кнопкой​​ ячейки или только​​ указатель примет форму​​ кнопку​

  1. ​ на вашем языке.​Dim n As​

  2. ​ вставки Set copyrng​​Читайте предыдущие сообщения.​​Мур​

  3. ​ vbQuestion + vbYesNo,​​Dima S​​ года и следующие​

Перемещение и копирование ячеек

  1. ​ как копировать не​ исключением некоторых столбцов)​

    ​ этот диапазон выделяете?​

  2. ​ указанных ниже действий.​​ активную ячейку.​​Вставить​​ видимые. Например, можно​​ указателя перемещения​Вырезать​

    Изображение ленты Excel

    • ​ Эта страница переведена​ Name​​ = Application.InputBox(«Диапазон копирования»,​ Изображение кнопки​Вам тоже спасибо!​

      ​: Приветствую всех участников!​​ _ «Copy Multiple​: файл с примером.​

    • ​ столбцы с месяцами​ в буфер обмена,​​алгоритм вижу такой:​ Значок кнопки​justirus​

      ​Чтобы переместить ячейки, нажмите​​При вставке скопированных данных​и выберите вариант​

  3. ​ скопировать только отображаемые​, перетащите ячейку​

    ​.​​ автоматически, поэтому ее​For Each n​ «Запрос», Type:=8) Set​KuklP​Вопрос к макросоведам​ Selection») < >​на пальцах никто​ 14 года. Делаем​ а в массив?​

  4. ​1. просим выделить​​: Зажимаете Ctrl и​​ кнопку​​ можно выполнить любое​​Специальная вставка​​ итоговые данные на​ Изображение кнопки​ или диапазон ячеек​

    ​Сочетание клавиш​​ текст может содержать​ In ThisWorkbook.Names​

​ pasterng = Application.InputBox(«Диапазон​​: Здравствуйте, Мур. И​

  • ​ или просто знающим​ vbYes Then Exit​ не сделает (разве​ отбор по нужным​Igor67​ ячейку в строке​

  • ​ выделяете нужные ячейки,​Вырезать​ из следующих действий:​.​ листе со структурой.​

  • ​ в новое расположение.​     Можно также нажать клавиши​ неточности и грамматические​wb.Names.Add Name:=n.Name, RefersTo:=Replace(n.RefersTo,​​ вставки», «Запрос», Type:=8)​ Изображение кнопки​ Вам спасибо за​ ребятам.​​ Sub ‘ Copy​​ очень уж помогливые)​​ критериям и соответственно​​: Ваша задача как​

  • ​ (с которой начнём​ потом копируете и​.​​вставить только параметры форматирования​​Установите флажок​Выделите ячейки, которые вы​Чтобы скопировать ячейки или​ CTRL+X.​​ ошибки. Для нас​​ ThisWorkbook.Sheets(1).Name, wb.Sheets(1).Name)​ ‘проверяем, чтобы они​ аккуратность. Я уже​Необходимо скопировать диапазон​ and paste each​​Макс​​ ненужные нам строки​​ то не понятно​​ вставку) в книге​​ вставляете куда нужно.​​Сочетание клавиш​​ ячейки, такие как​​пропускать пустые ячейки​​ хотите скопировать.​ диапазон ячеек, поместите​​Чтобы скопировать ячейки, нажмите​

Перемещение и копирование ячеек с помощью мыши

​ важно, чтобы эта​Next​ были одинакового размера​ извинился за свою​ с одного листа​

  1. ​ area For i​: извините, забыл прикрепить.​ скрываются. Получившийся результат​

    ​ выглядит, поэтому даже​

  2. ​ куда будем копировать​Ответил как понял,​

    • ​     Можно также нажать клавиши​ цвет текста или​.​Выделение ячеек и диапазонов​ указатель на границу​ кнопку​Указатель перемещения Excel​ статья была вам​End Sub​ If pasterng.SpecialCells(xlCellTypeVisible).Cells.Count <>​

    • ​ невнимательнось от Дата:​ на другой, при​ = 1 To​ Вот.​ из 13 года​ не буду ввязываться…​ (например ячейка G5​Указатель копирования​ без примера не​ CTRL+X.​ цвет заливки (но​

​Дважды щелкните ячейку с​​На вкладке​ выделенного фрагмента, удерживая​Копировать​ полезна. Просим вас​

​To GIG_ant​ copyrng.Cells.Count Then MsgBox​ Понедельник, Сегодня, 04:34​ этом исходный лист​ NumAreas RowOffset =​Все_просто​ нам нужно скопировать​Макросов копирования данных​ в книге1)​ понятно, что именно​Чтобы скопировать ячейки, нажмите​ не содержимое ячеек);​ данными, которые нужно​

​Главная​ нажатой клавишу CTRL.​.​ уделить пару секунд​Если не ошибаюсь,​ «Диапазоны копирования и​ | Сообщение №​должен быть скрыт.​

Вставка скопированных и перемещенных ячеек между существующими ячейками

  1. ​ SelAreas(i).Row — TopRow​: Не проверял код,​ в 14 год,​ из книги в​

    ​2. запрашиваем первую​

  2. ​ вы имеете ввиду.​​ кнопку​​преобразовать формулы в ячейках​​ переместить или скопировать.​​в группе​ Когда указатель примет​

    Изображение ленты Excel

    • ​Сочетание клавиш​ и сообщить, помогла​​ тогда еще и​ Изображение кнопки​ вставки разного размера!»,vbCritical​

      ​ 8.​​Подскажите где ошибка,​ ColOffset = SelAreas(i).Column​

    • ​ но работать должен.​ не снимая фильтра.​​ книгу, листа на​ Значок кнопки​ и последнюю строки​

      ​Мотя​​Копировать​ в вычисленные значения​

  3. ​Примечание​Редактирование​ форму указателя копирования​     Можно также нажать сочетание​​ ли она вам,​​ названия листов должны​​ Exit Sub End​​Удачи!​

    ​ пример прилагается.​​ — LeftCol SelAreas(i).Copy​Option Explicit Sub​ при стандартном копировании​ лист на форуме​ в книге откуда​: !​.​ без переопределения существующего​    По умолчанию можно редактировать​

  4. ​нажмите кнопку​​, перетащите ячейку​​ клавиш CTRL+C.​ с помощью кнопок​ совпадать​

​ If ‘переносим данные​​Весьма распространенная ситуация, вопрос​Заранее спасибо.​ PasteRange.Offset(RowOffset, ColOffset) Next​ CopyMultipleSelection() Dim SelAreas()​ данные вставляются и​

Копирование только видимых ячеек

​ полно.​ будем копировать (например​Покажите в файле:​Сочетание клавиш​ форматирования;​ и выделять данные​Найти и выделить​ или диапазон ячеек​Выделите левую верхнюю ячейку​

  1. ​ внизу страницы. Для​roka​

    ​ из одного диапазона​

  2. ​ про которую мне​​nilem​​ i End Sub​​ As Range Dim​​ в спрятанные строки.​​Главная задача определить​​ указывая ячейки D10​​ что — «есть»​​     Можно также нажать сочетание​

    Изображение ленты Excel

  3. ​вставить только формулы (но​​ непосредственно внутри ячейки,​​и выберите команду​​ в новое расположение.​​ области вставки.​​ удобства также приводим​​: Это понятно, спасибо.​

  4. ​ в другой только​​ задают почти на​​: Избавляйтесь от Selection​​Все_просто​​ PasteRange As Range​​ Специальные вставки не​ Значок кнопки​ начальную и конечную​

    Изображение ленты Excel

    ​ и K16 в​​ и что «надо».​ клавиш CTRL+C.​

  5. ​ не вычисленные значения).​ дважды щелкнув ее,​

    ​Выделить группу ячеек​​Примечание:​Совет:​ ссылку на оригинал​судя по коду,​ в видимые ячейки​ каждом тренинге. Есть​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub Макрос1()​: У Уокенбаха в​ Dim UpperLeft As​

  6. ​ помогают. Нужно чтобы​​ строку диапазона (столбцы​​ книге2)​​The_Prist​​Выделите левую верхнюю ячейку​​Выделите ячейку или диапазон​ Изображение кнопки​ но можно редактировать​

    ​.​​ При перемещении ячеек в​ Чтобы переместить или скопировать​

  • ​ (на английском языке).​ похоже то что​​ i = 1​ Изображение кнопки​ таблица, в которой​Sheets(«Лист1»).Range(«B1:D3»).Copy Sheets(«Лист2»).Range(«H9»)​ книге такое было,​ Range Dim NumAreas​

​ данные вошли в​ фиксированы как понял),​3. нажимаем кнопку​: Может имеется ввиду​ области вставки.​ ячеек со значениями,​ и выделять данные​В группе​ приложении Excel замещаются​

​ выделенный фрагмент на​Чтобы переместить или скопировать​ надо.​ For Each cell​ Фильтром (​End Sub​ но лень искать.​

Предотвращение замещения данных скопированными пустыми ячейками

  1. ​ As Integer, i​ соответствующие строки.​

    ​ а потом копируем​

  2. ​ и копируем строки,​​ это:​​Совет:​​ форматами или формулами,​​ и в строка​​Выбор​ Значок кнопки​ существующие данные в​

    Изображение ленты Excel

    ​ другой лист или​​ содержимое ячейки с​GIG_ant​

  3. ​ In pasterng If​Данные — Фильтр​

  4. ​Мур​​ Нашел на англоязычном​​ As Integer Dim​​Например, есть строки:​​ эти блоки в​ но не полностью​​grablik​ Изображение кнопки​ Чтобы переместить или скопировать​​ которые нужно скопировать.​​ формул.​

  5. ​щелкните элемент​​ области вставки.​​ в другую книгу,​

Перемещение и копирование только содержимого ячейки

  1. ​ помощью​: Категорически с вами​ cell.EntireRow.Hidden = False​

    ​) отобраны несколько строк.​​: nilem, большое спасибо!​ сайте.​ TopRow As Long,​№ янв’13 фев’13​ другую книгу…​ а по определённому​: нужно перенести значения​ выделенный фрагмент на​

  2. ​Выделение ячеек и диапазонов​В ячейке выделите символы,​Только видимые ячейки​

    ​При копировании ячеек ссылки​

    ​ щелкните ярлычок другого​

    ​Вырезать​

    ​ согласен )​

    ​ Then cell.Value =​ Задача — вставить​Работает замечательно. И​Макс​ LeftCol As Integer​

    ​ янв’14 фев’14​

    Изображение кнопки

    ​Определить начало и​ формату, который прописываем​ размеров из первого​ другой лист или​На вкладке​ которые нужно скопировать​

    ​и нажмите кнопку​

    ​ на ячейки изменяются​ листа или выберите​,​Казанский​ copyrng.Cells(i).Value i =​ какие-либо нужные нам​ главное просто.​: Я так и​

  3. ​ Dim RowOffset As​​1 1,596 2,450​​ конец диапазона можно​​ в макросе (например​​ столбца во второй​ в другую книгу,​

    Изображение ленты Excel

    • ​Главная​ или переместить.​​ОК​ Изображение кнопки​ автоматически. Но при​

      ​ другую книгу и​​Копировать​: Во прикол!​

    • ​ i + 1​ значения именно в​​А тут мудрю, сначала​ Значок кнопки​ понял, сам там​

      ​ Long, ColOffset As​​ 0000 0000​ через InputBox​

  4. ​ копируем только столбцы​Сергей​ щелкните ярлычок другого​в группе​Выделение символов в ячейке​.​ перемещении ячеек ссылки​

  5. ​ выделите левую верхнюю​​и​​Если скопировать таким​​ End If Next​​ видимые отфильтрованные строки,​​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sheets(«Ëèñò1»).Visible = True​ Изображение кнопки​ смотрел, код не​

    ​ Integer Dim NonEmptyCellCount​​2 0000 3,784​примерно так​

  6. ​ 1-5, 8-15, 20)​

    ​: в столбец С​​ листа или выберите​Буфер обмена​Чтобы выделить содержимое ячейки​На вкладке​ не изменяются, и​ ячейку области вставки.​Вставить​ образом имя, которое​ cell End Sub​ пропуская при этом​перед Selection вписываю,​ подходит. Нужно чтобы​ As Integer ‘​ 0000 0000​

Копирование значений ячеек, форматов ячеек и только формул

​On Error Resume​В итоге получаем​ =ЕСЛИ(ЕЧИСЛО(A2);A2;B2) протягиваете копируете​

  • ​ другую книгу и​нажмите кнопку​Выполните следующие действия​Главная​ вместо содержимого этих​

  • ​На вкладке​. Или скопируйте определенного​ ссылается на несуществующий​Как легко сообразить, макрос​

  • ​ скрытые. Обычное копирование-вставка​ затем после выполнения​

  • ​ макрос сам определял​ Exit if a​3 0000 1,009​ Next​

    ​ что в книге1​

  • ​ вставляете как значения​​ выделите левую верхнюю​​Копировать​​В ячейке​​в группе​​ ячеек и всех​ Значок кнопки​Главная​

    Изображение ленты Excel

    ​ содержимого или атрибутов​​ лист, имя создается,​ запрашивает у пользователя​

  • ​ при этом не​ кода наооборот​ эту область для​ range is not​ 0000 0000​Set rngStartRange =​

  • ​ заполнены строки 5​​grablik​​ ячейку области вставки.​​.​​Дважды щелкните ячейку, а​Буфер обмена​​ ячеек, которые на​ Изображение кнопки​в группе​ ячеек. Например скопируйте​

    • ​ но его значение,​ по очереди два​​ сработает, т.к. данные вставятся​​Sheets(«Ëèñò1»).Select​

    • ​ выделения.​ selected If TypeName(Selection)​​4 8,957 1,123​​ Application.InputBox _​

    • ​ — 11 столбцы​: Сергей, спасибо, но​​На вкладке​​Сочетание клавиш​

      ​ затем протащите указатель​​нажмите кнопку​ них ссылаются, может​Буфер обмена​ результатом формулы без​ ессно, равно ошибке​ диапазона — копирования​ не только в​ActiveWindow.SelectedSheets.Visible = False​Пробовал так​ < > «Range»​ 0000 0000​(Prompt:=»Выделите начальную ячейку»,​ 1-5, 8-15, 20​ это не то​Главная​     Можно также нажать сочетание​ мыши, чтобы охватить​Копировать​ отображаться ошибка адресации.​нажмите кнопку​ копирования формулы или​ #ЗНАЧ!​ и вставки. Затем​ видимые, но и​Еще раз спасибо!​Sub tyu() Cells.Select​

Копирование параметров ширины ячеек

​ Then MsgBox «Select​5 1,321 0000​ _​Вот и всё.​ что нужно, потому​в группе​ клавиш CTRL+C.​ содержимое ячейки, которое​

  1. ​.​ В этом случае​

    ​Вставить​

  2. ​ скопировать только формулу.​​Теперь, если создать​​ проверяет, чтобы их​​ в скрытые ячейки.​​Мур​ Selection.CurrentRegion.Select Selection.Copy Range(Selection,​

    Изображение ленты Excel

    • ​ the range to​ 0000 0000​​Title:=»», Type:=8)​ Изображение кнопки​Спасибо за помощь.​

      ​ что нужно будет​​Буфер обмена​Выделите левую верхнюю ячейку​

    • ​ требуется выделить.​Сочетание клавиш​​ потребуется изменить ссылки​ Значок кнопки​.​

      ​Ячейки в Excel перемещаются​​ лист с соотв.​ размеры совпадали, т.к.​

  3. ​ Давайте посмотрим, как​: О как наредактировал!​

    ​ Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlToRight)).Select​​ be copied. A​Отфильтровали, получилось​If rngStartRange Is​ Готового решения в​ удалить эти значения​нажмите стрелку под​ области вставки или​В строке формул​     Можно также нажать сочетание​

  4. ​ вручную.​​Сочетание клавиш​​ и копируются вместе​​ именем, то имя​​ разница в размерностях​ можно обойти эту​​Мур​ Изображение кнопки​ Range(Selection, Selection.End(xlToRight)).Select Range(Selection,​​ multiple selection is​​№ янв’13 фев’13​

support.office.com

Как скопировать только видимые ячейки в Excel

​ Nothing Then MsgBox​ Интернете не нашёл.​ из первого столбца,​ кнопкой​ ту ячейку, куда​

​Щелкните ячейку, а затем​ клавиш CTRL+C.​

Копируем видимые ячейки в Excel

​Если выделенная область копирования​     Можно также нажать сочетание​ с формулами, итоговыми​ заработает ТОЛЬКО в​

Копируем видимые ячейки в Excel

​ вызовет впоследствии ошибку​ проблему.​: А если так:​

  1. ​ Selection.End(xlToRight)).Select End Sub​​ allowed.» Exit Sub​​ янв’14 фев’14​
  2. ​ «Выберите ячейку, а​​Роман​​ так что они​​Вставить​​ нужно вставить значение,​ протащите указатель мыши,​​Выделите левую верхнюю ячейку​​ содержит скрытые ячейки,​Копируем видимые ячейки в Excel
  3. ​ клавиш CTRL+V.​​ значениями, форматом и​​ VBA: можно использовать​ при вставке. Затем​​Если вам нужно вставить​​nilem, большое спасибо!​Копируем видимые ячейки в Excel
  4. ​но макрос выделяет​ End If ‘​​1 1,596 2,450​​ то ни чего​
  5. ​: файлы прикрепляю​​ потеряюца и во​​и выберите пункт​​ формат ячейки или​​ чтобы охватить содержимое​

​ области вставки.​

Копируем видимые ячейки в Excel

​ строки или столбцы,​Примечания:​
​ примечаниями.​
​ диапазон range(«имя») или​

​ макрос перебирает все​

office-guru.ru

Копирование несвязанных диапазонов

​ одни и те​​Работает замечательно. И​ только диапазон с​ Store the areas​ 0000 0000​ делать не буду»,​Роман​ втором. Тут нужно​Сохранить ширину столбцов оригинала​ формулу.​ ячейки, которое требуется​Совет:​ приложение Excel копирует​ ​В Excel ячейки можно​

​ names(«имя»).RefersTorange или [имя],​​ ячейки в диапазоне​ же значения во​

​ главное просто.​​ А по J,​ as separate Range​3 0000 1,009​ vbInformation, «НУ?!»​
​: К сожалению все​ скопировать без свзяи​.​На вкладке​

​ выделить в строке​​ Чтобы переместить или скопировать​
​ их. Может понадобиться​В Excel вырезанные или​ перемещать путем перетаскивания​:)

​ но его нельзя​​ вставки и переносит​ все отфильтрованные строки​

​А тут мудрю,​​ оставшийся не захватывает,​ objects NumAreas =​ 0000 0000​

​If Not rngStartRange​​ столбцы должны быть​Юрий М​По умолчанию Excel копирует​

​Главная​​ формул.​ выделенный фрагмент на​ временно отобразить данные,​ скопированные ячейки выделяются​ или с помощью​ выделить: [имя].select дает​ туда данные из​ списка, то все​ сначала​ даже при наличии​

​ Selection.Areas.Count ReDim SelAreas(1​​4 8,957 1,123​ Is Nothing Then​ открыты и требуется​: Но Вы же​ как видимые, так​в группе​С помощью клавиатуры​ другой лист или​ которые не нужно​

​ анимированной пунктирной рамкой.​​ команд​ ошибку.​ диапазона копирования, если​ просто. Предположим, что​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sheets(«Ëèñò2»).Select​

​ Range(Selection, Selection.End(xlToRight)).Select​​ To NumAreas) For​ 0000 0000​iNachRow = rngStartRange.row​

​ скопировать несвязанные диапазоны​​ просили КОПИРОВАНИЕ, а​ и скрытые ячейки.​Буфер обмена​

​Нажмите клавишу F2, чтобы​​ в другую книгу,​ копировать.​ Чтобы снять это​Вырезать​И на листе​ строка видима (т.е.​ у нас есть​Sheets(«Ëèñò1»).Visible = True​Все_просто​ i = 1​теперь из 13​:)​ ‘начальная строка блока​:)

​ формат которых заранее​​ получается, что Вам​ Однако можно скопировать​

​щелкните стрелку под​​ изменить ячейку. С​ щелкните ярлычок другого​Выделите ячейку или диапазон​ выделение, нажмите клавишу​и​ использование этого имени​ не отфильтрована).​ вот такой список​Sheets(«Ëèñò1»).Select​: Какой-то странный код​ To NumAreas Set​ года копируем данные​ данных​ известне (это столбцы​

planetaexcel.ru

выбор несвязанного диапазона ячеек из одной книги и их копирование в другую

​ нужен перенос. Но​​ только видимые ячейки.​
​ кнопкой​
​ помощью клавиш со​ листа или выберите​ ячеек с данными,​ ESC.​Вставить​ приводит к ошибке.​

​roka​
​ сделок:​Range(«B1:D3»).Select​ в 6 посте.​ SelAreas(i) = Selection.Areas(i)​ и вставляем их​—-​ 1-5, 8-15, 20​
​ у тут есть​В этом примере строка​Вставить​ стрелками поместите курсор​ другую книгу и​ которые нужно переместить​При перемещении ячеек путем​
​.​При выборе имени​: Подскажите, плиз, есть​… и в нем нужно поставить​Selection.Copy​ Может я что-то​ Next ‘ Determine​ в ячейки вместо​
​Потом конечную строку,​ в примере)​ выход: выделяем скопированное,​ 2 скрыта:​и выполните одно​
​ в нужное место,​
​ выделите левую верхнюю​ или скопировать.​ вырезания и вставки​

​Перемещение ячеек путем перетаскивания​​ в Диспетчере имен​

​ ли возможность скопировать​​ фиксированную скидку в​Sheets(«Ëèñò2»).Select​ не понимаю?​ the upper left​ тире в 14​ проверку больше меньше,​Роман​ правый клик -​

​Если просто скопировать, а​​ из следующих действий:​ а затем выделите​ ячейку области вставки.​
​Выделение ячеек и диапазонов​

​ в приложении Excel​​Выделите ячейки или диапазон​ диапазон даже выделяется​
​ имена диапазонов из​ 1000 рублей каждому​Range(«H9»).Select​Если не хотите​
​ cell in the​ год​ а потом просто​

​: до сих пор​​ Специальная вставка -​ затем вставить этот​
​чтобы вставить только значения,​ содержимое, удерживая нажатой​На вкладке​На вкладке​
​ замещаются существующие данные​ ячеек, которые требуется​ на листе, но​

​ одной книги в​ «Ашану».​ActiveSheet.Paste​ выбирать вручную нужные​
​ multiple selection TopRow​должно быть так:​ копируем заданные диапазоны…​
​ ничего сделать не​ значения.​ диапазон, результат получается​

​ выберите вариант​​ клавишу SHIFT.​Главная​
​Главная​ в области вставки.​ переместить или скопировать.​ ошибка не пропадает.​
​ другую.​Фильтруем наш список Автофильтром,​Sheets(«Ëèñò1»).Select​

​ области, пропишите соответствующую​ = ActiveSheet.Rows.Count LeftCol​№ янв’13 фев’13​ И не надо​
​ могу​grablik​ следующим:​
​значения​На вкладке​в группе​

​в группе​Чтобы воспользоваться специальными вариантами​Наведите указатель мыши на​Теперь можете загадывать​

​Понимаю что копать​​ оставляя на экране​ActiveWindow.SelectedSheets.Visible = False​ область вместо объекта​ = ActiveSheet.Columns.Count For​
​ янв’14 фев’14​ в буфер или​прошу помощи​: может кто нибудь​Чтобы скопировать только видимые​
​;​Главная​Буфер обмена​Буфер обмена​ вставки ячеек, можно​ границу выделенной области.​ загадку знатокам Excel​
​ надо где-то здесь​ только «Ашаны». Вводим​Еще раз большое спасибо!​
​ инпутбокс. Должен же​
​ i = 1​1 1,596 2,450​
​ в массив загонять…​Guest​
​ помочь с настройкой​ ячейки, выполните несколько​
​чтобы вставить только форматы​
​в группе​нажмите кнопку​выполните одно из​ щелкнуть стрелку под​Когда указатель примет вид​ — как добиться​

​ ThisWorkbook.ActiveSheet.Names​ нужное значение в​
​Мур​ быть какой-то критерий.​ To NumAreas If​
​ 1,596 2,450​
​Роман​: А если не​ сортировки данных в​ простых действий:​ ячеек, выберите вариант​Буфер обмена​Вставить​

​ указанных ниже действий.​​ кнопкой​ указателя перемещения​
​ состояния, показанного на​webley​ первую ячейку и​: И окончательный вариант​

​Если это возможно​​ SelAreas(i).Row < TopRow​3 0000 1,009​: Спасибо. Потихоньку что-то​ «заморачиваться» несвязанными диапазонами?​ ячейке? готов обсудить​Выделите диапазон​Форматирование​выполните одно из​.​Чтобы переместить выделенный фрагмент,​
​Вставить​, перетащите ячейку​ рисунке: :)) Прикрепленные​
​: я так посмотрел,​ протягиваем (копируем за​ ответа (простите меня​ попробуйте через цикл​
​ Then TopRow =​ 0000 1,009​ начинает получаться.​Сколько их? Постоянные​ условия​
​A1:A4​;​ указанных ниже действий.​Сочетание клавиш​
​ нажмите кнопку​

​и выбрать нужный​​ или диапазон ячеек​ файлы post_241538.png (10.16​
​ наверное все таки​

​ правый нижний угол​
​ воюю с редактором):​

​ провести все операции​​ SelAreas(i).Row If SelAreas(i).Column​4 8,957 1,123​Только вот не​

planetaexcel.ru

Копирование форматированных данных в несвязные диапазоны (Формулы)

​ — нет? Место​​МВТ​
​.​чтобы вставить только формулы,​Чтобы переместить выделенный фрагмент,​     Можно также нажать клавиши​Вырезать​ вариант, например​ в другое место.​ КБ)​ надо смотреть ThisWorkbook.Names​ ячейки) вниз:​nilem, большое спасибо!​ без методов типа​ < LeftCol Then​ 8,957 1,123​ понял про то​ куда: постоянное -​: grablik, сортировка данных​На вкладке​ выберите вариант​ нажмите кнопку​ CTRL+V.​
​.​
​Специальная вставка​Перемещение ячеек с помощью​
​roka​nerv​
​Умный Excel в данном​Работает замечательно. И​
​ .copy, .cut, пр.​ LeftCol = SelAreas(i).Column​
​но получается что​ как копировать не​
​ нет?​ в ячейке? Наверное,​
​Home​
​формулы​Вырезать​
​Если нажать стрелку под​Сочетание клавиш​
​или​ команд «Вырезать» и​
​: что я делаю​: На мой взгляд​
​ случае понимает, что​ главное просто.​KuklP​ Next Set UpperLeft​ третья строка прячется​ загоняя в буфер?​
​Дать имена… Поставить​
​ в столбце?​(Главная) нажмите кнопку​
​.​.​
​ командой​     Можно также нажать клавиши​
​Рисунок​ «Вставить»​
​ не так?​ вопрос сформулирован странно:​ вы хотите ввести​А я тут​: Жуть какая-то с​
​ = Cells(TopRow, LeftCol)​
​ во вторую, а​Guest​ в очередь на​

​Юрий М​​Find & Select​Примечание:​Сочетание клавиш​

excelworld.ru

Копирование несмежных диапазонов (VBA)

​Вставить​​ CTRL+X.​.​
​Выделите ячейку или диапазон​Workbooks(nname).Add Name:=n.Name, RefersToR1C1:=n.RefersToR1C1​ зачем копировать имена​ значения именно в​ мудрю:​ этим форумом. Намучаешься,​
​ ‘ Get the​ чевертая оказывается в​: Вы найдите файл​ копирование и… вперед!(?)​: grablik, а какое​(Найти и выделить)​ Если копируемые формулы содержат​     Можно также нажать клавиши​, можно выбрать​Чтобы скопировать выделенный фрагмент,​По умолчанию в приложении​ ячеек.​на этом месте​ именованных диапазонов? Другое​ отфильтрованные ячейки и​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub Макрос1()​ пока сообщение напишешь.​ paste address On​ третьей.​ по клчевым словам​
​Роман​ отношение сортировка имеет​
​ и кликните по​

​ относительные ссылки на​​ CTRL+X.​
​ параметры вставки, которые​ нажмите кнопку​ Excel на листе​

​На вкладке​​ ругается, что объект​ дело, если, к​

​ делает то, что​​Sheets(«Лист2»).Select​Public Sub www()​
​ Error Resume Next​Как это сделать?​ = Анюточка Pavel55​: А если не​ к заявленной теме?​Go To Special​ ячейки, Excel настраивает​Чтобы скопировать выделенный фрагмент,​ следует применить к​Копировать​ отображается кнопка​Главная​ не поддерживает данное​ примеру, имя привязано​ нужно:​Sheets(«Лист1»).Visible = True​ Dim r As​ Set PasteRange =​Тема закрыта. Причина:​ =. Там как​ «заморачиваться» несвязанными диапазонами?​Revenant​(Выделить группу ячеек).​ ссылки (и относительные​ нажмите кнопку​ выделенному диапазону.​.​Параметры вставки​нажмите кнопку​ свойство или метод​ к группе ячеек​Такой способ подойдет и​Sheets(«Лист1»).Select​ Range, lr&, lc&,​ Application.InputBox _ (Prompt:=»Specify​ Нарушение правил пп​ раз есть копирование​Сколько их? Постоянные​: У меня похожий​Выберите опцию​ части смешанных ссылок)​Копировать​При копировании значения последовательно​Сочетание клавиш​, которая позволяет получить​Вырезать​Юрий М​ и требуется перенести​ для ввода значений​Range(«B1:D3»).Select​ c As Range​ the upper left​ 3 и 5g​ из многих книг​ — нет? Место​ вопрос. Выделяю с​Visible cells only​ в скопированных формулах.​.​ вставляются в строки​     Можно также нажать сочетание​ доступ к специальным​или нажмите клавиши​: Я тоже не​ их…​ и для ввода​Selection.Copy​ lc = Rows(1).Find(«ОбщСтатусДвиженияМтр»,​ cell for the​SkyPro​ в 1. Где​ куда: постоянное -​ Ctrl желтые ячейки​(Только видимые ячейки)​ Допустим, ячейка B8​Сочетание клавиш​ и столбцы. Если​ клавиш CTRL+C.​ вариантам вставки ячеек,​ CTRL+X.​ понимаю: зачем копировать​GIG_ant​ формул. Например, если​Sheets(«Лист2″).Select​ lookat:=xlPart).Column ‘Cells(1, Columns.Count).End(xlToLeft).Column​ paste range:», _​: Зачем такой размер​ много (книг) КОД​ нет?​ и пытаюсь их​ и нажмите​ содержит формулу =СУММ(B1:B7).​     Можно также нажать сочетание​ область вставки содержит​Щелкните правой кнопкой мыши​ например​Выделите ячейку, в которую​ ИМЕНА. Другое дело​: Попробуйте так:​ скидка для «Ашанов»​Range(«H9″).Select​ lr = Cells(Rows.Count,​ Title:=»Copy Mutliple Selection»,​

​ шрифта и где​​ ОБРЕЖЕТЕ И ДАЛЬШЕ​Дать имена… Поставить​ скопировать в другой​OK​ Если скопировать эту​

​ клавиш CTRL+C.​​ скрытые строки или​ левую верхнюю ячейку​Сохранить исходное форматирование​ вы хотите переместить​ — копировать именованный​Sub CopyNames()​ не фиксированная, а​
​ActiveSheet.Paste​
​ 1).End(xlUp).Row Set r​ _ Type:=8) On​ файл?​ все просто.​ в очередь на​
​ столбец, чтобы они​.​ формулу в ячейку​Щелкните в том месте​ столбцы, возможно, потребуется​ области вставки, а​

​. Если не нужно​​ данные.​ диапазон…​Dim n As​ составляет 10% от​
​Sheets(«Лист1»).Select​ = Range([a1], Cells(lr,​ Error GoTo 0​Макс​Копирование с активного​ копирование и… вперед!(?){/post}{/quote}​
​ не задели ячейки​Excel выделит видимые ячейки.​ C8, новая формула​ ячейки, куда нужно​ отобразить их, чтобы​

​ затем выберите пункт​​ отображать эту кнопку​На вкладке​webley​:(
​ Name​ суммы сделки, то​ActiveWindow.SelectedSheets.Visible = False​ lc)).SpecialCells(12) r.Copy Sheets(2).[a1]​ ‘ Exit if​: Уважаемые знатоки VBA,​ листа как -​Диапазонов много -​ без заливки. Приходится​ Теперь нажмите сочетание​ будет ссылаться на​

​ вставить символы, или​​ увидеть все скопированные​Вставить вырезанные ячейки​ при каждой вставке​Главная​: Может так?​For Each n​ в первую отфильтрованную строку​

​End Sub​​ End Sub​ canceled If TypeName(PasteRange)​ приветствую Вас.​ то так​ порядка 40, число​ перебивать руками, может,​:D

​Ctrl+C​​ соответствующие ячейки этого​ дважды щелкните другую​ данные.​или​ ячеек, ее можно​
​нажмите кнопку​Workbooks(nname).NAMES.Add Name:=n.Name, RefersToR1C1:=n.RefersToR1C1​:)​ In ThisWorkbook.Names​ можно ввести не​

​И вроде работает,​​Маугли​ < > «Range»​Помогите пожалуйтса, видел​

planetaexcel.ru

Копирование диапазона (Отладка макроса)

​Range(«A» & iStartRow​​ строк разное, место​
​ этот вопрос как​, чтобы скопировать диапазон.​ столбца: =СУММ(C1:C7). Если​
​ ячейку для перемещения​При копировании и вставке​Вставить скопированные ячейки​ отключить. Откройте вкладку​
​Вставить​
​roka​ИмяКниги.Names.Add Name:=n.Name, RefersToR1C1:=n.RefersToR1C1​
​ константу (1000), а​

​ но как-то чересчур​​: Может так.. Sub​
​ Then Exit Sub​
​ на форуме много​
​ & ":" &​

​ тоже разное​​ то можно упростить?​
​Выберите ячейку​ копируемые формулы содержат​

​ или копирования в​​ скрытых или отфильтрованных​
​.​Файл​или нажмите клавиши​
​: аааааааааа, спасибо, проглядел​
​Next n​

​ формулу (=C2*10%) и также скопировать вниз.​

​ сложно все.​​ tt() Dim Rng​

​ ‘ Make sure​​ подобных тем, но​
​ «F» & iLastRow).copy​
​Пробую написать макрос,​Пример прикрепил.​
​A6​ абсолютные ссылки на​
​ нее данных.​
​ данных в другое​
​Совет​
​и выберите команду​
​ CTRL+V.​
​roka​
​End Sub​
​Другое дело, если вам​
​А Вам, еще раз​
​ As Range With​

​ only the upper​

​ мой случай не​​ destination:=Workbook(«…»).worksheet(«…»).Range(«A» & iRow)​ пока выходит, но​Revenant​
​и нажмите​
​ ячейки, ссылки в​На вкладке​
​ приложение или в​    Чтобы переместить или скопировать​
​Параметры​
​Копируйте ячейки на листе​
​: Всем спасибо, все​
​где ИмяКниги -​
​ необходимо вставить в​
​ большое спасибо!​
​ Sheets(1) Set Rng​
​ left cell is​
​ подходит ни под​
​Это если нет​
​ не очень​
​: Никто не знает​

​Ctrl+V​ скопированных формулах не​Главная​

​ другой экземпляр приложения​ выделенный фрагмент на​

​. В категории​​ с помощью команд​ что мне надо​
​ имя книги в​
​ отфильтрованные ячейки не​
​KuklP​

​ = .UsedRange.SpecialCells(12) End​​ used Set PasteRange​ один из них.​ формул, если есть​Вопрос: как передать​ чтоли?(​, чтобы вставить диапазон.​
​ меняются. Если вы​в группе​ Excel будут скопированы​

​ другой лист или​​Дополнительно​
​Копировать​ было, получилось. В​ которую копируем имена.​
​ одинаковые значения или​: Да уж, перебор.​
​ With Rng.Copy Sheets(2).[A1]​wacko​ = PasteRange.Range(«A1») ‘​

​Есть лист, на​

​ и надо перенести​​ в переменную номер​_Igor_61​Результат:​ не получили ожидаемого​Буфер обмена​ только видимые ячейки.​ в другую книгу,​в разделе​
​и​

excelworld.ru

Вставка в отфильтрованные строки

​ результате полистного копирования​GIG_ant​ формулы, а разные,​ Смотрим:​ End Sub​ Check paste range​​ нем размещена таблица​​ значения/форматы/ и т.д.​ строки активной ячейки?​: Записал макрорекордером и​Урок подготовлен для Вас​ результата, попробуйте изменить​нажмите кнопку​Выделите диапазон ячеек, содержащий​ щелкните ярлычок другого​Вырезание, копирование и вставка​Вставить​ одной книги в​: При этом книга​ да еще и​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub Макрос1()​KuklP​

Способ 1. Вставка одинаковых значений или формул

​ for existing data​ с данными, в​ используем специальную вставку…​Роман​ сделал имена для​ командой сайта office-guru.ru​ ссылки в исходных​Вставить​ пустые ячейки.​

Как вȎxcel скопировать несвязанные диапазоны

​ листа или выберите​снимите флажок​.​ другую формулы с​

​ в которую копируем​ брать их из другого​Sheets(«Лист1»).[B1:D3].CopySheets(«Лист2»).[H9]​: Маугли, там справа​ NonEmptyCellCount = 0​ таблице установлен фильтр.​Работа с буфером​: А если не​

Как вȎxcel скопировать несвязанные диапазоны

​ переменных, но как​Источник: http://www.excel-easy.com/examples/copy-visible-cells-only.html​ формулах на относительные​.​Выделение ячеек и диапазонов​ другую книгу и​Отображать кнопку параметров вставки​

Как вȎxcel скопировать несвязанные диапазоны

​Выделите ячейку или диапазон​ применением имен диапазонов​ должна быть открыта​ диапазона. Тогда придется использовать​End Sub​ от таблицы пара​ For i =​ Необходимо при помощи​ — это уже​ «заморачиваться» несвязанными диапазонами?​ это все теперь​Перевел: Антон Андронов​

Способ 2. Макрос вставки любых значений

​ или абсолютные, а​Сочетание клавиш​На вкладке​ выделите левую верхнюю​ при вставке содержимого​ ячеек.​ работают корректно.​roka​ несложный макрос. Нажмите​KuklP​​ заполненных ячеек. Автору​​ 1 To NumAreas​ макроса выделить два​ отдельная процедура (код)​Сколько их? Постоянные​​ в цикл записать​​Автор: Антон Андронов​ затем снова скопировать​

​     Можно также нажать сочетание​Главная​ ячейку области вставки.​.​Нажмите кнопку​Казанский​: по моему это​ сочетание клавиш​: Ну вот, невнимателен.​ не нужно, чтоб​ RowOffset = SelAreas(i).Row​ несвязанных диапазона -​ в ВБА.​ — нет? Место​ не знаю Sub​grablik​ ячейки.​ клавиш CTRL+V.​в группе​В диалоговом окне​По умолчанию режим перетаскивания​Копировать​: Если все же​ одно и тоже.​Alt+F11​ Николай раньше ответил​ они попали под​ — TopRow ColOffset​ с А по​Игорь67​ куда: постоянное -​ Перенос() Dim iStart,​: Подскажите как можно​

​При вставке скопированных данных​Нажмите клавишу ВВОД.​Буфер обмена​Вставка скопированных ячеек​ включен, поэтому можно​или клавиши CTRL+C.​ захотите копировать не​ Ну допустим есть​, в открывшемся окне​ то же от:​ раздачу​ = SelAreas(i).Column -​ Q и скопировать​слэн​ нет?​ iCoda, iSumma iStart​ скопировать несвязанные диапазоны.​

planetaexcel.ru

копирование именованных диапазонов

​ к ним применяются​​Примечание:​нажмите кнопку​выберите направление, в​ перемещать и копировать​Нажмите кнопку​
​ только имена, но​ имена, привязанные к​ Visual Basic вставьте​

​ nilem Дата: Суббота,​​Макс​ LeftCol NonEmptyCellCount =​ их. Проблема заключается​

​: если копировать только​​Дать имена… Поставить​ = Range(«E1») iCoda​ В одном столбце​ параметры ширины целевых​ При двойном щелчке ячейки​Копировать​ котором нужно сдвинуть​ ячейки с помощью​Вставить​

​ и диапазоны, на​​ группе ячеек, вот​

​ новый пустой модуль​
​ 16.04.2011, 12:01 |​: , спасибо огромнейшее,​
​ NonEmptyCellCount + _​ в том, что​
​ значения:​
​ в очередь на​
​ = Range(«F1») iSumma​

​ множество ячеек со​ ячеек. Чтобы изменить​ или нажатии клавиши​

​.​​ окружающие ячейки.​ мыши.​или клавиши CTRL+V.​

​ которые ссылаются эти​​ их и надо​ через меню​ Сообщение № 2.​ я думал у​ Application.CountA(Range(PasteRange.Offset(RowOffset, ColOffset), _​ в данном диапазоне​[b1:b6] = [a1:a6].Value​

​ копирование и… вперед!(?){/post}{/quote}​​ = Range(«H1») Range(iStart).Select​ значениями, их нужно​ ширину ячеек в​ F2 для редактирования​

​Сочетание клавиш​
​Примечание​Выделите ячейки или диапазон​
​Выделите ячейки, которые нужно​ имена, посмотрите тут:​
​ перенести.​Insert — Module​
​Мур, что Вас​ меня сейчас мозг​
​ PasteRange.Offset(RowOffset + SelAreas(i).Rows.Count​ прямо посередине есть​
​если все:​
​Диапазонов много -​

​ Selection.Copy Range(iCoda).Select ActiveSheet.Paste​
​ скопировать в другой​ соответствии с параметрами​ активной ячейки клавиши​     Можно также нажать сочетание​

​    При вставке целых строк​​ ячеек, которые требуется​
​ переместить или скопировать.​roka​webley​

​и скопируйте туда​​ не устраивает в​ взорвется с этим​

​ — 1, _​​ пустые столбцы -​
​[a1:a6].copy [b1:b6]​ порядка 40, число​ Range(iStart).Select Selection.ClearContents End​ столбец. Если нужно​ исходных ячеек, выполните​ со стрелками будут​ клавиш CTRL+C.​
​ или столбцов окружающие​ переместить или скопировать.​Выделение ячеек и диапазонов​: Спасибо, посмотрю.​: Можно вот так​ этот код:​ ответе Николая?​ выделением.​ ColOffset + SelAreas(i).Columns.Count​ с К по​
​Роман​ строк разное, место​ Sub​
​ использовать макросы, то​ указанные ниже действия.​ работать только внутри​Выделите левую верхнюю ячейку​ строки и столбцы​

​Выделение ячеек и диапазонов​На вкладке​Так то, у​ попробовать (для простоты​Sub PasteToVisible() Dim​Мур​Спасибо большое еще​

​ — 1))) Next​​ Р, их тоже​: Всем спасибо, далее​
​ тоже разное​
​Роман​ буду очень признателен​Выделите ячейки, которые нужно​ данной ячейки. Чтобы​

​ области вставки.​​ сдвигаются соответственно вниз​Выполните одно из указанных​Главная​ меня все скопировано,​ в исходной книге​

​ copyrng As Range,​​: Здравствуйте! KuklP.​
​ раз.​

​ i ‘ If​​ нужно включать в​

​ буду самостоятельно работать​​Пробую написать макрос,​: Добрый день!​ за разъяснение как​ переместить или скопировать.​ с помощью клавиш​На вкладке​ и влево.​ ниже действий.​

​в группе​​ не хватало имен.​ только один лист)​ pasterng As Range​Меня всё устраивает.​Макрос работает как​ paste range is​

​ выделение. Т.е. в​​ над темой.​
​ пока выходит, но​проблема выглядит так:​ их применить. К​

planetaexcel.ru

​Выделение ячеек и диапазонов​

Ячейка в Excel — это прямоугольная область рабочего листа, которая образуется при пересечении одного столбца и одной строки. Если две ячейки имеют одну общую сторону, то ячейки называют смежными. Соответственно, если две ячейки общих сторон не имеют, то их называют несмежными. Кроме этого в Excel различают диапазон ячеек и группу ячеек.

В свою очередь диапазоны ячеек также могут быть как смежными, так и несмежными. Смежный диапазон ячеек в Excel — это совокупность ячеек, представляющая собой прямоугольную область, полученную при пересечении нескольких столбцов и нескольких строк, идущих подряд. Два или более диапазонов, не примыкающих друг к другу, не имеющие общих сторон, являются несмежными. Такие диапазоны также называют несвязанными. Ячейки, входящие в несмежные диапазоны образуют группу ячеек.

Что такое используемый диапазон ячеек в Excel?

Диапазон рабочего листа, все ячейки которого находятся между первой заполненной и последней заполненной ячейкой, называется используемым диапазоном. Другими словами использыемый диапазон — это область ячеек, используемая пользователем для хранения информации (значений, форматов и так далее).

Что такое именованный диапазон ячеек в Excel?

Именованный диапазон — это ячека, либо диапазон ячеек, которому присвоено имя. Имя — краткое, осмысленное обозначение. Имена ячеек и диапазонов могут использоваться при создании формул вместо адресов ячеек, а также при выделении нужных диапазонов. Присвоить имя диапазону можно различными способами, самый простой из которых — выделить нужную ячейку или диапазон и в адресном окошке строки формул написать имя для именованного диапазона.

По умолчанию имена диапазонов ячеек автоматически считаются абсолютными ссылками.

Для имен действует ряд ограничений:

— имя может содержать до 255 символов;

— первым символом в имени должна быть буква, знак подчеркивания (_) либо обратная косая черта (), остальные символы имени могутбыть буквами, цифрами, точками и знаками подчеркивания;

— имена не могут быть такими же, как ссылки на ячейки;

— пробелы в именах не допускаются;

— строчные и прописные буквы не различаются.

Управление существующими именованными диапазонами (создание, просмотр и изменение) можно осуществлять при помощи диспетчера имен. В Excel 2007 диспетчер находится на вкладке «Формулы», в группе кнопок «Определенные имена».

Основные действия с диапазонами

Выделение диапазонов

О том как выделять ячейки и группы ячеек уже рассказывалось в одной из наших публикаций. Также ранее рассматривалась тема о том как выделять строки в рабочих листах Excel, но строка является одним из частных видов диапазона ячеек. Рассмотрим несколько способов выделения диапазонов ячеек в общем виде.

Способ первый: для выделения небольшого диапазона ячеек, находящихся рядом, можно просто провести по ним курсор мыши в виде широкого белого креста при нажатой левой кнопке мыши. Первая ячейка диапазона при этом останется неподсвеченной и готовой к вводу информации.

Способ второй: для выделения большого диапазона ячеек необходимо щелкнуть по первой ячейке диапазона, после чего при нажатой клавише Shift, щелкнуть по последней ячейке диапазона. При этом можно использовать горячие клавиши для перехода в начало или конец строки, а также для перехода в начало или конец рабочего листа.

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

Сравнение диапазонов

Сравнение диапазонов — это одна из классических задач в Excel, которую рано или поздно приходится решать любому пользователю Excel. Задача по сравнению диапазонов может быть поставлена по разному. Когда-то нужно найти различия или совпадения в диапазонах при построчном их сравнении, а когда-то необходимо узнать есть ли что-то общее в сравниваемых диапазонах вообще. В зависимости от поставленной задачи различаются и методики её решения.

Например, для построчного сравнения часто используется логическая функция «ЕСЛИ» и какой-либо из операторов сравнения (также можно использовать и другие функции, например «СЧЕТЕСЛИ» из категории статистические для проверки вхождения элементов одного списка в другой).

Также для поиска отличий по столбцам или по строкам используется стандартное средство Excel, которое находится на вкладке «Главная», в группе кнопок «Редактирование», в меню кнопки «Найти и выделить». Если в этом меню выбрать пункт «Перейти» и далее нажать кнопку «Выделить», то в диалоговом окне «Выделение группы ячеек» можно выбрать одну из опций «Отличия по строкам» или «Отличия по столбцам».

Для поиска повторяющихся или уникальных значений в двух диапазонах можно использовать условное форматирование.

Сравнение диапазонов можно провести и при помощи надстройки для Excel, которая позволяет находить и подсвечивать заливкой различия или совпадения в двух заданных диапазонах. 

Изменение (преобразование) диапазонов значений

Одним из способов преобразования диапазона значений является транспонирование. Транспонирование — это такое преобразование диапазона значений, при котором данные, расположенные построчно перемещаются в столбцы и наоборот с сохранением порядка, то есть первая строка становится первым столбцом, вторая строка — вторым столбцом и так далее.

Транспонирование можно осуществить при помощи функции «=ТРАНСП(Диапазон)», которая находится в категории «Ссылки и массивы». Есть и другой способ — копирование диапазона значений с последующей специальной вставкой, при которой ставится флажок в поле «Транспонировать».

Есть еще одна возможность изменения выбранного диапазона значений. При помощи надстройки для Excel можно значения исходного диапазона разложить по заданному количеству строк либо столбцов. 

А знаете ли Вы, что можно быстро собрать диапазоны значений с разных листов на итоговый лист?

Надстройка для работы с диапазонами в Excel

Кнопки надстройки расположены на отдельной вкладке ленты Excel, каждая кнопка вызывает пользовательскую форму (диалоговое окно), при помощи которой процедурам VBA задаются начальные условия. Надстройка позволяет осуществлять различные действия с диапазонами ячеек, такие как: копирование диапазонов из определенных листов различных рабочих книг и вставка их на итоговый лист, сравнение двух диапазонов, вставка заданного диапазона в определенные листы различных рабочих книг, производить математические действия между значениями ячеек диапазона и заданным числом, изменение размеров диапазона, применение текстовых функций к текстовым значениям ячеек диапазона, копирование и вставка диапазонов ячеек со всех листов книги на итоговый лист.

nadstrojka dlya raboty s diapazonami excel

nadstrojka dlya raboty s diapazonami excel 2

CompleteSolutionскачать надстройку для работы с диапазонами

Другие материалы по теме:

Блог активной пенсионерки.

суббота, 23 августа 2014 г.

Microsoft Excel. Выделение ячеек. Связные и несвязные диапазоны ячеек.

Каждая ячейка в таблице имеет свой адрес. Он обозначается номером столбца и номером строки.

Столбцы в таблице обозначаются буквой С и цифрами.
Ряды — обозначаются буквой R и цифрами.

Например ячейка , расположенная в 5-м ряду, во втором столбце имеет адрес: R5C2.

Этот адрес показан в поле имени.

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

Ячейка становится активной и туда можно помещать информацию.

Чтобы выделить ряд, нужно щелкнуть на значении ряда.

Чтобы выделить столбец, нужно щелкнуть на значении столбца.

Выделенная совокупность ячеек называется диапазоном.
Диапазоны бывают связные и несвязные.

Связные диапазоны имеют одну выделенную границу. В правом нижнем углу связной ячейки находится маркер.

Несвязные – выделенные не смежные ячейки.

Щелкните левой кнопкой мыши на требуемой ячейке и не отпуская кнопки, протяните вправо и вниз. Отпустите кнопку.
Вы получите связный диапазон ячеек.

В обозначении диапазона указывается левая верхняя и правая нижняя ячейка, которые разделяются двоеточием.

В поле имени указывается адрес только левой верхней ячейки диапазона.

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

Вы можете выделить несколько групп ячеек в разных местах таблицы.
Отпустите клавишу Ctrl. Вы получили несвязный диапазон.

Можно создать связный диапазон с помощью клавиши Shift и клавиши стрелка.

Поместите курсор в ячейку, нажмите клавишу Shift и несколько раз щелкните клавишей стрелка вправо и потом кнопкой стрелка вниз или наоборот.

Автоматически изменяемые диапазоны ячеек в Excel

В процессе работы с данными в Excel иногда заранее не известно, сколько данных будет собрано в той или иной таблице. Поэтому мы не всегда можем заранее знать какой диапазон должно охватывать имя. Ведь количество данных может изменяться. Для решения данной задачи следует автоматически изменить именованный диапазон используемых ячеек, в зависимости от количества введенных данных.

Как в Excel сделать автоматическое изменение диапазона

Допустим, у нас есть объект инвестирования, по которому мы хотим знать суммарную прибыль за весь период его использования. Заранее мы не можем определить период использования инвестиционного объекта. Но нам нужно постоянно следить за общим доходом, который приносит нам данный объект инвестирования.

Сформируйте отчет по доходности нашего объекта инвестирования, так как показано на рисунке:

Данную задачу можно было-бы решить путем суммирования целого столбца B и после появления в нем записей общая сумма изменялась бы автоматически. Но это некорректный способ решения задач в Excel. Во-первых, нам нельзя будет использовать ячейки столбца B для ввода других данных. Во-вторых, так функция суммирования будет нерационально потреблять больше памяти. Это может привести к серьезным проблемам при работе с документом. Самым рациональным решением является использование динамических имен.

  1. Выберите инструмент «Формулы»-«Определенные имена»-«Присвоить имя».
  2. Заполните поля диалогового окна «Создание имени» как на рисунке. Обратите внимание на то, что в поле «Диапазон:» мы используем функцию =СМЕЩ, а в одном из ее параметров используем функцию =СЧЕТ. Пример: =СМЕЩ(Лист1!$B$2;0;0;СЧЁТ(Лист1!$B:$B);1)
  3. Переместите курсор в ячейку D2 и введите функцию =СУММ с именем «доход» в ее параметрах.

Теперь постепенно заполняя ячейки в столбце B, мы можем проследить, как изменяется охват ячеек именем «доход».

Функция СМЕЩ в Excel

Разберем более детально функции, которые мы вводили в поле диапазон при создании динамического имени.

Функция =СМЕЩ определяет наш диапазон в зависимости от количества заполненных ячеек в столбце B. 5 параметров функции =СМЕЩ(начальная ячейка; смещение размера диапазона по строкам; смещение по столбцам; размер диапазона в высоту; размер диапазона в ширину):

  1. «Начальная ячейка» – указывает верхнюю левую ячейку, от которой будет динамически расширяться диапазон как вниз, так и вправо (при необходимости).
  2. «Смещение по строкам» – параметр определяет, на какое количество нужно смещать диапазон по вертикали от начальной ячейки (первого параметра). Значения могут быть нулевыми и отрицательными.
  3. «Смещение по столбцам» – параметр определяет, на какое количество нужно смещать по горизонтали от начальной ячейки. Значения могут быть даже нулевыми и отрицательными.
  4. «Размер диапазона в высоту» – количество ячеек, на которое нужно увеличить диапазон в высоту. По сути, название говорит само за себя.
  5. «Размер диапазона в ширину» – количество ячеек, на которое нужно увеличить в ширину от начальной ячейки.

Последние 2 параметра функции являются необязательными. Если их не заполнять, то диапазон будет состоять из 1-ой ячейки. Например: =СМЕЩ(A1;0;0) – это просто ячейка A1, а параметр =СМЕЩ(A1;2;0) ссылается на A3.

Теперь разберем функцию: =СЧЕТ, которую мы указывали в 4-ом параметре функции: =СМЕЩ.

Что определяет функция СЧЕТ

Функция =СЧЕТ($B:$B) автоматически считает количество заполненных ячеек в столбце B.

Таким образом, мы с помощью функции =СЧЕТ() и =СМЕЩ() автоматизируем процесс формирования диапазона для имени «доход», что делает его динамическим. Теперь еще раз посмотрим на нашу формулу, которой мы присвоили имя «доход»: =СМЕЩ(Лист1!$B$2;0;0;СЧЁТ(Лист1!$B:$B);1)

Читать данную формулу следует так: первый параметры указывает на то, что наш автоматически изменяемый диапазон начинается в ячейке B2. Следующие два параметра имеют значения 0;0 – это значит, что динамический диапазон не смещается относительно начальной ячейки B2. А увеличивается только его размер по вертикали, о чем свидетельствует 4-тый параметр. В нем находится функция СЧЕТ и она возвращает число равно количеству заполненных ячеек в столбце B. Соответственно количество ячеек по вертикали в диапазоне будет равно числу, которое нам даст функция СЧЕТ. А за ширину диапазона у нас отвечает последний 5-тый параметр, где находиться число 1.

Благодаря функции СЧЕТ мы рационально загружаем в память только заполненные ячейки из столбца B, а не весь столбец целиком. Данный факт исключает возможные ошибки связанные с памятью при работе с данным документом.

Динамические диаграммы в Excel

У нас есть динамическое имя, теперь создадим динамическую диаграмму для данного типа отчета:

  1. Выделите диапазон B2:B6 и выберите инструмент: «Вставка»-«Диаграммы»-«Гистограмма»-«Гистограмма с группировкой».
  2. Щелкните левой кнопкой мышки по любому столбцу гистограммы и в строке формул отобразится функция диаграммы: =РЯД().
  3. В строке формул измените параметры функции: =РЯД(Лист1!$B$1;;Лист1!$B$2:$B$7;1) на =РЯД(Лист1!$B$1;;Лист1!доход;1).
  4. В отчет добавьте новую запись в ячейки A8 — «июль», B8 — «77000» соответственно. И убедитесь, что на диаграмме автоматически добавился новый столбец.

Используя наше динамическое имя «доход» нам удалось создать автоматически изменяемую динамическую диаграмму, которая сама добавляет и отображает новые данные в отчете.

Именованный диапазон в Excel

При создании формул в Эксель мы пользуемся стандартной адресацией ячеек , однако мы можем присвоить свое собственное название любой ячейке, диапазону ячеек или таблице. Это позволит значительно упростить создание формул, а также облегчит анализ сложных формул, состоящих из множества функций.

Имя ячейки

Начнем с простого — присвоим имя ячейке. Для этого просто выделяем ее (1) и в поле имени (2) вместо адреса ячейки указываем произвольное название, которое легко запомнить.

Длина имени ограничена 255 символами, что более чем достаточно. Также в имени не должно быть пробелов, поэтому если оно состоит из нескольких слов, то их можно разделять знаком подчеркивания.

Если теперь на других листах книги нам нужно будет вывести данное значение или использовать его в дальнейших расчетах, то не обязательно переключаться на первый лист и указывать ячейку вручную. Достаточно просто ввести имя ячейки и ее значение будет подставлено.

Именованный диапазон

Аналогичным образом можно задать имя и для диапазона ячеек, то есть выделим диапазон (1) и в поле имени укажем его название (2):

Далее это название можно использовать в формулах, например, при вычислении суммы:

Также создать именованный диапазон можно с помощью вкладки Формулы , выбрав инструмент Задать имя .

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

Для работы с существующими диапазонами на вкладке Формулы есть Диспетчер имен .

С его помощью можно удалять, изменять или добавлять новые имена ячейкам или диапазонам.

При этом важно понимать, что если вы используете именованные диапазоны в формулах, то удаление имени такого диапазона приведет к ошибкам.

Именованный диапазон из таблицы

Если же диапазон значений имеет заголовки или речь идет о таблице, то стоит воспользоваться инструментом Создать из выделенного . Как понятно из его названия, предварительно необходимо выделить диапазон или таблицу (1). Затем указываем место, в котором находятся заголовки (3).

В результате Эксель автоматически создаст диапазоны по заголовкам.

При этом, если заголовки будут состоять из нескольких слов, то Эксель автоматически подставит знак подчеркивания между словами.

Использование именованных диапазонов

Обратите внимание на то, что название диапазона появится в поле имени только в том случае, если он будет полностью выделен.

Если выделить одну ячейку диапазона или другой диапазон, включающий его ячейки, то имя отображаться не будет.

Если в одном документе используется множество именованных диапазонов или ячеек, то запомнить все названия становится сложно. В этом случае при создании формул удобно пользоваться специальным инструментом со вкладки ФормулыИспользовать в формуле .

Здесь будут перечислены все имеющиеся названия диапазонов. Если имен слишком много, то можно открыть диалоговое окно Вставить имена и выбрать необходимый диапазон из него.

При этом обратите внимание, что при наличии двух и более диапазонов в диалоговом окне появляется кнопка Все имена . С ее помощью можно вставить список всех именованных диапазонов, то есть появится два столбца с данными — имя диапазона и его местоположение.

Эта информация будет весьма полезной при работе с большим количеством именованных диапазонов, когда нужно быстро вспомнить, какие имена закреплены за какими диапазонами.

Ну и более наглядно и подробно об именованных диапазонах смотрите в видео:

Связанные (зависимые) выпадающие списки

Способ 1. Функция ДВССЫЛ (INDIRECT)

Этот фокус основан на применении функции ДВССЫЛ (INDIRECT), которая умеет делать одну простую вещь — преобразовывать содержимое любой указанной ячейки в адрес диапазона, который понимает Excel. То есть, если в ячейке лежит текст «А1», то функция выдаст в результате ссылку на ячейку А1. Если в ячейке лежит слово «Маша», то функция выдаст ссылку на именованный диапазон с именем Маша и т.д. Такой, своего рода, «перевод стрелок» 😉

Возьмем, например, вот такой список моделей автомобилей Toyota, Ford и Nissan:

Выделим весь список моделей Тойоты (с ячейки А2 и вниз до конца списка) и дадим этому диапазону имя Toyota. В Excel 2003 и старше — это можно сделать в меню Вставка — Имя — Присвоить (Insert — Name — Define). В Excel 2007 и новее — на вкладке Формулы (Formulas) с помощью Диспетчера имен (Name Manager). Затем повторим то же самое со списками Форд и Ниссан, задав соответственно имена диапазонам Ford и Nissan.

При задании имен помните о том, что имена диапазонов в Excel не должны содержать пробелов, знаков препинания и начинаться обязательно с буквы. Поэтому если бы в одной из марок автомобилей присутствовал бы пробел (например Ssang Yong), то его пришлось бы заменить в ячейке и в имени диапазона на нижнее подчеркивание (т.е. Ssang_Yong).

Теперь создадим первый выпадающий список для выбора марки автомобиля. Выделите пустую ячейку и откройте меню Данные — Проверка (Data — Validation) или нажмите кнопку Проверка данных (Data Validation) на вкладке Данные (Data) если у вас Excel 2007 или новее. Затем из выпадающего списка Тип данных (Allow) выберите вариант Список (List) и в поле Источник (Source) выделите ячейки с названиями марок (желтые ячейки в нашем примере). После нажатия на ОК первый выпадающий список готов:

Теперь создадим второй выпадающий список, в котором будут отображаться модели выбранной в первом списке марки. Также как в предыдущем случае, откройте окно Проверки данных, но в поле Источник нужно будет ввести вот такую формулу:

где F3 — адрес ячейки с первым выпадающим списком (замените на свой).

Все. После нажатия на ОК содержимое второго списка будет выбираться по имени диапазона, выбранного в первом списке.

Минусы такого способа:

  • В качестве вторичных (зависимых) диапазонов не могут выступать динамические диапазоны задаваемые формулами типа СМЕЩ (OFFSET). Для первичного (независимого) списка их использовать можно, а вот вторичный список должен быть определен жестко, без формул. Однако, это ограничение можно обойти, создав отсортированный список соответствий марка-модель (см. Способ 2).
  • Имена вторичных диапазонов должны совпадать с элементами первичного выпадающего списка. Т.е. если в нем есть текст с пробелами, то придется их заменять на подчеркивания с помощью функции ПОДСТАВИТЬ (SUBSTITUTE), т.е. формула будет выглядеть как =ДВССЫЛ(ПОДСТАВИТЬ(F3;» «;»_»))
  • Надо руками создавать много именованных диапазонов (если у нас много марок автомобилей).

Способ 2. Список соответствий и функции СМЕЩ (OFFSET) и ПОИСКПОЗ (MATCH)

Этот способ требует наличия отсортированного списка соответствий марка-модель вот такого вида:

Для создания первичного выпадающего списка можно марок можно воспользоваться обычным способом, описанным выше, т.е.

  • дать имя диапазону D1:D3 (например Марки) с помощью Диспетчера имен (Name Manager) с вкладки Формулы (Formulas) или в старых версиях Excel — через меню Вставка — Имя — Присвоить (Insert — Name — Define)
  • выбрать на вкладке Данные (Data) команду Проверка данных (Data validation)
  • выбрать из выпадающего списка вариант проверки Список (List) и указать в качестве Источника (Source)=Марки или просто выделить ячейки D1:D3 (если они на том же листе, где список).

А вот для зависимого списка моделей придется создать именованный диапазон с функцией СМЕЩ (OFFSET), который будет динамически ссылаться только на ячейки моделей определенной марки. Для этого:

  • Нажмите Ctrl+F3 или воспользуйтесь кнопкой Диспетчер имен (Name manager) на вкладке Формулы (Formulas). В версиях до 2003 это была команда меню Вставка — Имя — Присвоить (Insert — Name — Define)
  • Создайте новый именованный диапазон с любым именем (например Модели) и в поле Ссылка (Reference) в нижней части окна введите руками следующую формулу:

Ссылки должны быть абсолютными (со знаками $). После нажатия Enter к формуле будут автоматически добавлены имена листов — не пугайтесь 🙂

Функция СМЕЩ (OFFSET) умеет выдавать ссылку на диапазон нужного размера, сдвинутый относительно исходной ячейки на заданное количество строк и столбцов. В более понятном варианте синтаксис этой функции таков:

=СМЕЩ(начальная_ячейка; сдвиг_вниз; сдвиг_вправо; размер_диапазона_в_строках; размер_диапазона_в_столбцах)

  • начальная ячейка — берем первую ячейку нашего списка, т.е. А1
  • сдвиг_вниз — нам считает функция ПОИСКПОЗ (MATCH), которая, попросту говоря, выдает порядковый номер ячейки с выбранной маркой (G7) в заданном диапазоне (столбце А)
  • сдвиг_вправо = 1, т.к. мы хотим сослаться на модели в соседнем столбце (В)
  • размер_диапазона_в_строках — вычисляем с помощью функции СЧЕТЕСЛИ (COUNTIF), которая умеет подсчитать количество встретившихся в списке (столбце А) нужных нам значений — марок авто (G7)
  • размер_диапазона_в_столбцах = 1, т.к. нам нужен один столбец с моделями

В итоге должно получиться что-то вроде этого:

Осталось добавить выпадающий список на основе созданной формулы к ячейке G8. Для этого:

  • выделяем ячейку G8
  • выбираем на вкладке Данные (Data) команду Проверка данных (Data validation) или в меню Данные — Проверка (Data — Validation)
  • из выпадающего списка выбираем вариант проверки Список (List) и вводим в качестве Источника (Source) знак равно и имя нашего диапазона, т.е. =Модели

Microsoft Excel

трюки • приёмы • решения

Как распечатать несмежные диапазоны таблицы Excel на одной странице

Excel позволяет вам указывать область печати, которая состоит из несмежных диапазонов ячеек.

Нажмите Ctrl во время выбора диапазонов для печати, а затем выберите Разметка страницы ► Параметры страницы ► Область печати ► Задать. После того как вы определили область печати, вы можете использовать команду Разметка страницы ► Параметры страницы ► Область печати ► Добавить в область печати для указания дополнительных диапазонов для печати.

Если вы задали несмежные области печати, Excel всегда начинает печать каждого диапазона на отдельном листе бумаги. В этом приеме описывается метод, позволяющий печатать различные диапазоны на одной странице. Данный метод предполагает создание связанного рисунка каждого из диапазонов, которые нужно распечатать, а затем размещение этих рисунков на отдельных листах. Рассмотрим один из способов создания связанного рисунка.

  1. Выберите диапазон.
  2. Нажмите Ctrl+C.
  3. Активизируйте другую ячейку.
  4. Выполните команду Главная ► Буфер обмена ► Вставить ► Связанный рисунок.

К счастью, в Excel есть гораздо более эффективный инструмент для такой задачи: Камера (который по некоторым причинам Microsoft держит довольно скрытым).

Использование инструмента Камера

Чтобы добавить инструмент Камера на панель быстрого доступа, выполните следующие действия.

  1. Щелкните правой кнопкой мыши на панели быстрого доступа и выберите Настройка панели быстрого доступа для открытия раздела Панель быстрого доступа окна Параметры Excel .
  2. В раскрывающемся списке слева выберите Команды не на ленте.
  3. Выберите Камера в списке.
  4. Нажмите кнопку Добавить, чтобы добавить инструмент на панель быстрого доступа.
  5. Нажмите кнопку ОК для закрытия диалогового окна Параметры Excel.

Инструмент Камера создает связанный рисунок диапазона ячеек. Поэтому если данные в связанном диапазоне изменяются, рисунок обновляется автоматически. На рис. 185.1 показан лист, с которого нужно напечатать два диапазона (А3:С10 и E13:G20) на отдельной странице.

Рис. 185.1. Обычно нет возможности распечатать диапазоны А3:С10 и E13:G20 на одной странице

Съемка камерой

Далее я расскажу вам, как использовать инструмент Камера для печати нескольких диапазонов на одном листе бумаги.

  1. Убедитесь, что инструмент Камера доступен на панели быстрого доступа. Выполните шаги из предыдущего подраздела, если это не так.
  2. Вставьте новый лист (Лист2), который будет содержать связанные рисунки.
  3. Выберите диапазон А3:С10 и щелкните на инструменте Камера.
  4. Активизируйте лист Лист2 и нажмите кнопку для вставки связанного рисунка.
  5. Вернитесь к предыдущему листу, выберите E13:G20 и нажмите кнопку инструмента Камера.
  6. Активизируйте Лист2 и вставьте связанный рисунок.
  7. Используйте мышь, чтобы разместить связанные рисунки так, как вам нужно.

Вы можете отключить отображение сетки на листе, который содержит связанные рисунки (рис. 185.2). Если данные листа Лист1 изменятся, то связанные рисунки также обновятся. При печати листа Лист2 оба диапазона окажутся на одной странице.

Рис. 185.2. Использование связанных рисунков позволяет печатать два диапазона ячеек на одной странице

 

grablik

Пользователь

Сообщений: 10
Регистрация: 19.11.2015

Подскажите как можно скопировать несвязанные диапазоны. В одном столбце множество ячеек со значениями, их нужно скопировать в другой столбец. Если нужно использовать макросы, то буду очень признателен за разъяснение как их применить. К сожалению с макросами не знаю как обращаться.

 

МВТ

Пользователь

Сообщений: 1198
Регистрация: 01.02.2015

А как Вы этот диапазон выделяете?

 

justirus

Пользователь

Сообщений: 295
Регистрация: 03.06.2014

Зажимаете Ctrl и выделяете нужные ячейки, потом копируете и вставляете куда нужно.
Ответил как понял, без примера не понятно, что именно вы имеете ввиду.

 

Мотя

Пользователь

Сообщений: 3218
Регистрация: 25.12.2012

grablik

!
Покажите в файле: что — «есть» и что «надо».  :)

 

The_Prist

Пользователь

Сообщений: 14182
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

grablik

Пользователь

Сообщений: 10
Регистрация: 19.11.2015

нужно перенести значения размеров из первого столбца во второй

 

Сергей

Пользователь

Сообщений: 11251
Регистрация: 01.01.1970

#7

19.11.2015 14:49:19

в столбец С

Код
=ЕСЛИ(ЕЧИСЛО(A2);A2;B2)

протягиваете копируете вставляете как значения

Лень двигатель прогресса, доказано!!!

 

grablik

Пользователь

Сообщений: 10
Регистрация: 19.11.2015

Сергей, спасибо, но это не то что нужно, потому что нужно будет удалить эти значения из первого столбца, так что они потеряюца и во втором. Тут нужно скопировать без свзяи

 

Юрий М

Модератор

Сообщений: 60585
Регистрация: 14.09.2012

Контакты см. в профиле

#9

19.11.2015 21:19:06

Цитата
grablik написал:
нужно будет удалить эти значения из первого столбца

Но Вы же просили КОПИРОВАНИЕ, а получается, что Вам нужен перенос. Но у тут есть выход: выделяем скопированное, правый клик — Специальная вставка — значения.

 

grablik

Пользователь

Сообщений: 10
Регистрация: 19.11.2015

может кто нибудь помочь с настройкой сортировки данных в ячейке? готов обсудить условия

 

МВТ

Пользователь

Сообщений: 1198
Регистрация: 01.02.2015

grablik, сортировка данных в ячейке? Наверное, в столбце?

 

Юрий М

Модератор

Сообщений: 60585
Регистрация: 14.09.2012

Контакты см. в профиле

grablik, а какое отношение сортировка имеет к заявленной теме?

 

Revenant

Пользователь

Сообщений: 28
Регистрация: 06.10.2016

У меня похожий вопрос. Выделяю с Ctrl желтые ячейки и пытаюсь их скопировать в другой столбец, чтобы они не задели ячейки без заливки. Приходится перебивать руками, может, этот вопрос как то можно упростить? :) Пример прикрепил. :)

Изменено: Revenant09.01.2017 15:20:55

 

Revenant

Пользователь

Сообщений: 28
Регистрация: 06.10.2016

 

_Igor_61

Пользователь

Сообщений: 3007
Регистрация: 18.07.2016

#15

09.01.2017 22:18:06

Записал макрорекордером и сделал имена для переменных, но как это все теперь в цикл записать не знаю

Код
Sub Перенос()
    Dim iStart, iCoda, iSumma
    iStart = Range("E1")
    iCoda = Range("F1")
    iSumma = Range("H1")
    
    Range(iStart).Select
    Selection.Copy
    Range(iCoda).Select
    ActiveSheet.Paste
    Range(iStart).Select
    Selection.ClearContents
End Sub

Прикрепленные файлы

  • grablik.xlsm (18.45 КБ)

Изменено: _Igor_6109.01.2017 23:07:31

О чём пойдёт речь?

Знакомство с объектной моделью Excel следует начинать с такого замечательного объекта, как Range. Поскольку любая ячейка — это Range, то без знания, как с этим объектом эффективно взаимодействовать, вам будет затруднительно программировать для Excel. Это очень ладно-скроенный объект. При некоторой сноровке вы найдёте его весьма удобным в эксплуатации.

Что такое объекты?

Мы собираемся изучать объект Range, поэтому пару слов надо сказать, что такое, собственно, «объект«. Всё, что вы наблюдаете в Excel, всё с чем вы работаете — это набор объектов. Например, лист рабочей книги Excel — не что иное, как объект типа WorkSheet. Однотипные объекты объединяют в коллекции себе подобных. Например, листы объединены в коллекцию Sheets. Чтобы не путать друг с другом объекты одного и того же типа, они имеют отличающиеся имена, а также номер индекса в коллекции. Объекты имеют свойства, методы и события.

Свойства — это информация об объекте. Часто эти свойства можно менять, что автоматически влечет изменения внешнего вида объекта или его поведения. Например свойство Visible объекта Worksheet отвечает за видимость листа на экране. Если ему присвоить значение xlSheetHidden (это константа, которая по факту равно нулю), то лист будет скрыт.

Методы — это то, что объект может делать. Например, метод Delete объекта Worksheet удаляет себя из книги. Метод Select делает лист активным.

События — это механизм, при помощи которого вы можете исполнять свой код VBA сразу по факту возникновения того или иного события с вашим объектом. Например, есть возможность выполнять ваш код, как только пользователь сделал текущим определенный лист рабочей книги, либо как только пользователь что-то изменил на этом листе.

Range это диапазон ячеек. Минимум — одна ячейка, максимум — весь лист, теоретически насчитывающий более 17 миллиардов ячеек (строки 2^20 * столбцы 2^14 = 2^34).
В Excel объявлены глобально и всегда готовы к использованию несколько коллекций, имеющий членами объекты типа Range, либо свойства это же типа.
Коллекции глобального объекта Application: Cells, Columns, Rows, а также свойства Range, Selection, ActiveCell, ThisCell.
ActiveCell — активная ячейка текущего листа, ThisCell — если вы написали пользовательскую функцию рабочего листа, то через это свойство вы можете определить какая конкретно ячейка в данный момент пересчитывает вашу функцию. Об остальных перечисленных объектов речь пойдёт ниже.

Работа с отдельными ячейками

Синтаксическая форма Комментарии по использованию
RangeD5«) или [D5] Ячейка D5 текущего листа. Полная и краткая формы. Тут применим только синтаксис типа A1, но не R1C1. То есть такая конструкция RangeR1C2«) — вызовет ошибку, даже если в книге Excel включен режим формул R1C1.

Разумеется после этой формы вы можете обратиться к свойствам соответствующей ячейки. Например, RangeD5«).Interior.Color = RGB(0, 255, 0).
Cells(5, 4) или Cells(5, «D») Ячейка D5 текущего листа через свойство Cells. 5 — строка (row), 4 — столбец (column). Допустимость второй формы мало кому известна.
Cells(65540) Ячейку D5 можно адресовать и через указание только одного параметра свойсва Cells. При этом нумерация идёт слева направо, потом сверху вниз. То есть сначала нумеруется вся строка (2^14=16384 колонок) и только потом идёт переход на следующую строку. То есть Cells(16385) вернёт вам ячейку A2, а D5 будет Cells(65540). Пока данный способ выглядит не очень удобным.

Работа с диапазоном ячеек

Синтаксическая форма Комментарии по использованию
Range(«A1:B4«) или [A1:B4] Диапазон ячеек A1:B4 текущего листа. Обратите внимание, что указываются координаты верхнего левого и правого нижнего углов диапазона. Причём первый указываемый угол вполне может быть правым нижним, это не имеет значения.
Range(Cells(1, 1), Cells(4, 2)) Диапазон ячеек A1:B4 текущего листа. Удобно, когда вы знаете именно цифровые координаты углов диапазона.

Работа со строками

Синтаксическая форма Комментарии по использованию
Range3:5«) или [3:5] Строки 3, 4 и 5 текущего листа целиком.
RangeA3:XFD3«) или [A3:XFD3] Строка 3, но с указанием колонок. Просто, чтобы вы понимали, что это тождественные формы. XFD — последняя колонка листа.
Rows3:3«) Строка 3 через свойство Rows. Параметр в виде диапазона строк. Двоеточие — это символ диапазона.
Rows(3) Тут параметр — индекс строки в массиве строк. Так можно сослаться только не конкретную строку. Обратите внимание, что в предыдущем примере параметр текстовая строка «3:3» и она взята в кавычки, а тут — чистое число.

Работа со столбцами

Синтаксическая форма Комментарии по использованию
RangeB:B«) или [B:B] Колонка B текущего листа.
RangeB1:B1048576«) или [B1:B1048576] То же самое, но с указанием номеров строк, чтобы вы понимали, что это тождественные формы. 2^20=1048576 — максимальный номер строки на листе.
ColumnsB:B«) То же самое через свойство Columns. Параметр — текстовая строка.
Columns(2) То же самое. Параметр — числовой индекс столбца. «A» -> 1, «B» -> 2, и т.д.

Весь лист

Синтаксическая форма Комментарии по использованию
RangeA1:XFD1048576«) или [A1:XFD1048576] Диапазон размером во всё адресное пространство листа Excel. Воспринимайте эту таблицу лишь как теорию — так работать с листами вам не придётся — слишком большое количество ячеек. Даже современные компьютеры не смогут помочь Excel быстро работать с такими массивами информации. Тут проблема больше даже в самом приложении.
Range1:1048576«) или [1:1048576] То же самое, но через строки.
RangeA:XFD«) или [A:XFD] Аналогично — через адреса столбцов.
Cells Свойство Cells включает в себя ВСЕ ячейки.
Rows Все строки листа.
Columns Все столбцы листа.

Следует иметь в виду, что свойства Range, Cells, Columns и Rows имеют как объекты типа Worksheet, так и объекты Range. Соответственно в первом случае эти коллекции будут относиться ко всему листу и отсчитываться будут от A1, а вот в случае конкретного объекта Range эти коллекции будут относиться только к ячейкам этого диапазона и отсчитываться будут от левого верхнего угла диапазона. Например Cells(2,2) указывает на ячейку B2, а Range(«C3:D5»).Cells(2,2) укажет на D4.

Также много путаницы в умы вносит тот факт, что объект Range имеет одноименное свойство range. К примеру, Range(«A100:D500»).Range(«A2») — тут выражение до точки ( Range(«A100:D500») ) является объектом Range, выражение после точки ( Range(«A2») ) — свойство range упомянутого объекта, но возвращает это свойство тоже объект типа Range. Вот такие пироги. Из этого следует, что такая цепочка может иметь и более двух членов. Практического смысла в этом будет не много, но синтаксически это будут совершенно корректно, например, так: Range(«CV100:GR200»).Range(«J10:T20»).Range(«A1:B2») укажет на диапазон DE109:DF110.

Ещё один сюрприз таится в том, что объекты Range имеют свойство по-умолчанию Item( RowIndex [, ColumnIndex] ). По правилам VBA при ссылке на default свойства имя свойства (Item) можно опускать. Кстати говоря, то что вы привыкли видеть в скобках после Cells, есть не что иное, как это дефолтовое свойство Item, а не родные параметры Cells, который их не имеет вовсе. Ну ладно к Cells все привыкли и это никакого отторжения не вызывает, но если вы увидите нечто подобное — Range(«C3:D5»)(2,2), то, скорее всего, будете несколько озадачены, а тем временем — это буквально тоже самое, что и у Cells — всё то же дефолтовое свойство Item. Последняя конструкция ссылается на D4. А вот для Columns и Rows свойство Item может быть только одночленным, например Columns(1) — и к этой форме мы тоже вполне привыкли. Однако конструкции вида Columns(2)(3)(4) могут сильно удивить (столбец 7 будет выделен).

Примеры кода

Скачать

Типовые задачи

  1. Перебор ячеек в диапазоне (вариант 1)

    В данном примере организован цикл For…Next и доступ к ячейкам осуществляется по их индексу. Вместо parRange(i) мы могли бы написать parRange.Item(i) (выше это объяснялось). Обратите внимание, что мы в этом примере успешно применяем, как вариант с parRange(i,c), так и parRange(i). То есть, если мы применяем одночленную форму свойства Item, то диапазон перебирается по строкам (A1, B1, C1, A2, …), а если двухчленную, то столбец у нас зафиксирован и каждая итерация цикла — на новой строке. Это очень интересный эффект, его можно применять для вытягивания таблиц по вертикали. Но — продолжим!

    Количество ячеек в диапазоне получено при помощи свойства .Count. Как .Item, так и .Count — это всё атрибуты коллекций, которые широко применяются в объектой модели MS Office и, в частности, Excel.

    Sub Handle_Cells_1(parRange As Range)
      For i = 1 To parRange.Count
        parRange(i, 5) = parRange(i).Address & " = " & parRange(i)
      Next
    End Sub
     
  2. Перебор ячеек в диапазоне (вариант 2)

    В этом примере мы использовали цикл For each…Next, что выглядит несколько лаконичней. Однако, в некоторых случаях вам может потребоваться переменная i из предыдущего примера, например, для вывода результатов в определенные строки листа, поэтому выбирайте удробную вам форму оператора For. Тут в цикле мы «вытягивали» все ячейки диапазона в текстовую строку, чтобы потом отобразить её через функцию MsgBox.

    Sub Handle_Cells_2(parRange As Range)
      For Each c In parRange
        strLine = strLine & c.Address & "=" & c & "; "
      Next
      MsgBox strLine
    End Sub
     
  3. Перебор ячеек в диапазоне (вариант 3)

    Если необходимо перебирать ячейки в порядке A1, A2, A3, B1, …, а не A1, B1, C1, A2, …, то вы можете это организовать при помощи 2-х циклов For. Обратите внимание, как мы узнали количество столбцов (parRange.Columns.Count) и строк (parRange.Rows.Count) в диапазоне, а также на использование свойства Cells. Тут Cells относится к листу и никак не связано с диапазоном parRange.

    Sub Handle_Cells_3(parRange As Range)
      colNum = parRange.Columns.Count
      For i = 1 To parRange.Rows.Count
        For j = 1 To colNum
          Cells(i + (j - 1) * colNum, colNum + 2) = parRange(i, j)
        Next j
      Next i
    End Sub  
     
  4. Перебор строк диапазона

    В цикле For each…Next перебираем коллекцию Rows объекта parRange. Для каждой строки формируем цвет на основе первых трёх ячеек каждой строки. Поскульку у нас в ячейках формула, присваивающая ячейке случайное число от 1 до 255, то цвета получаются всегда разные. Оператор With позволяет нам сократить код и, к примеру, вместо Line.Cells(2) написать просто .Cells(2).

    Sub Handle_Rows_1(parRange As Range)
      For Each Line In parRange.Rows
        With Line
          .Interior.Color = RGB(.Cells(1), .Cells(2), .Cells(3))
        End With
      Next
    End Sub  
     
  5. Перебор столбцов

    Перебираем коллекцию Columns. Тоже используем оператор With. В последней ячейке каждого столбца у нас хранится размер шрифта для всей колонки, который мы и применяем к свойству Line.Font.Size.

    Sub Handle_Columns_1(parRange As Range)
      For Each Line In parRange.Columns
        With Line
          .Font.Size = .Cells(.Cells.Count)
        End With
      Next
    End Sub 
     
  6. Перебор областей диапазона

    Как вы знаете, в Excel можно выделить несвязанные диапазоны и проделать с ними какие-то операции. Поддерживает это и объект Range. Получить диапазон, состоящий из нескольких областей (area) очень легко — достаточно перечислить через запятую адреса соответствующих диапазонов: RangeA1:B3, B5:D8, Z1:AA12«).
    Вот такой составной диапазон и разбирается процедурой, показанной ниже. Организован цикл по коллекции Areas, настроен оператор with на текущий элемент коллекции, и ниже и правее относительно ячейки J1 мы собираем некоторые сведения о свойствах областей составного диапазона (которые каждый по себе, конечно же, тоже являются объектами типа Range). Для задания смещения от ячейки J1 нами впервые использовано очень полезное свойство Offset. Каждый диапазон получает случайный цвет, плюс мы заносим в таблицу порядковый номер диапазона (i), его адрес (.Address), количество ячеек (.Count) и цвет (.Interior.Color) после того, как он вычислен.

    Sub Handle_Areas_1(parRange As Range)
      For i = 1 To parRange.Areas.Count
        With parRange.Areas(i)
          Cells(1, 10).Offset(i, 0) = i
          Cells(1, 10).Offset(i, 1) = .Address
          Cells(1, 10).Offset(i, 2) = .Count
          .Interior.Color = RGB(Int(Rnd * 255), Int(Rnd * 255), Int(Rnd * 255))
          Cells(1, 10).Offset(i, 3) = .Interior.Color
        End With
      Next
    End Sub
     

Продолжение следует…

Читайте также:

  • Поиск границ текущей области

  • Массивы в VBA

  • Структуры данных и их эффективность

  • Автоматическое скрытие/показ столбцов и строк

Like this post? Please share to your friends:
  • Несвязанные диапазоны в excel при копировании
  • Нерастяжимый пробел в word это
  • Нерастяжимый пробел в word для чего
  • Нерастяжимые пробелы в word что это
  • Неразрывный пробел неразрывный дефис в word