Как присвоить одно значение диапазону ячеек в excel


Download Article

Easy methods to repeat a value in Excel on PC or mobile


Download Article

This wikiHow teaches how to copy one value to an entire range of cells in Microsoft Excel. If the cells you want to copy to are in a single row or column, you can use Excel’s Fill feature to fill the row or column with the same value. If you want the value to appear in a wider range of cells, such as multiple contiguous or non-connected (desktop-only) rows and columns, you can easily paste the value into a selected range.

  1. Image titled Add the Same Value to Multiple Cells in Excel Step 1

    1

    Type the value into an empty cell. For example, if you want the word «wikiHow» to appear in multiple cells, type wikiHow into any empty cell now. Use this method if you want the same value to appear in an entire range.

  2. Image titled Add the Same Value to Multiple Cells in Excel Step 2

    2

    Right-click the cell containing the value and select Copy. This copies the value to your clipboard.

    Advertisement

  3. Image titled Add the Same Value to Multiple Cells in Excel Step 3

    3

    Select the range of cells in which you want to paste the value. To do this, click and drag the mouse over every cell where the value should appear. This highlights the range.

    • The range you select doesn’t have to be continuous. If you want to select cells and/or ranges that aren’t connected, hold down the Control key (PC) or Command key (Mac) as you highlight each range.
  4. Image titled Add the Same Value to Multiple Cells in Excel Step 4

    4

    Right-click the highlighted range and click Paste. Every cell in the selected range now contains the same value.

  5. Advertisement

  1. Image titled Add the Same Value to Multiple Cells in Excel Step 5

    1

    Type the value into an empty cell. For example, if you want the word «wikiHow» to appear in multiple cells, type wikiHow into an empty cell above (if applying to a column) or beside (if applying to a row) the cells you want to fill.

  2. Image titled Add the Same Value to Multiple Cells in Excel Step 6

    2

    Tap the cell once to select it. This highlights the cell.

  3. Image titled Add the Same Value to Multiple Cells in Excel Step 7

    3

    Tap the highlighted cell once more. This opens the Edit menu.

  4. Image titled Add the Same Value to Multiple Cells in Excel Step 8

    4

    Tap Copy on the menu. Now that the value is copied to your clipboard, you’ll be able to paste it into a series of other cells.

  5. Image titled Add the Same Value to Multiple Cells in Excel Step 9

    5

    Select the range of cells in which you want the selected value to appear. To do so, tap the first cell where you want the copied value to appear, and then drag the dot at its bottom-right corner to select the entire range.

    • There is no way to select multiple non-touching ranges at once. If you need to copy the value into another non-adjacent range, repeat this step and the next step for the next range after pasting into this one.
  6. Image titled Add the Same Value to Multiple Cells in Excel Step 10

    6

    Tap the selected range and tap Paste. This copies the selected value into every cell in the range.

  7. Advertisement

  1. Image titled Add the Same Value to Multiple Cells in Excel Step 11

    1

    Type the value into an empty cell. For example, if you want the word «wikiHow» to appear in multiple cells, type wikiHow into an empty cell above (if applying to a column) or beside (if applying to a row) the cells you want to fill.

  2. Image titled Add the Same Value to Multiple Cells in Excel Step 12

    2

    Hover the mouse cursor over the bottom-right corner of the cell. The cursor will turn to crosshairs (+).

  3. Image titled Add the Same Value to Multiple Cells in Excel Step 13

    3

    Click and drag down the column or across the row to fill all cells. As long as Excel does not detect a pattern, all selected cells will be filled with the same value.

    • If the filled cells show up as a pattern, such as a series of increasing numbers, click the icon with a plus sign at the bottom of the selected cells, then select Copy cells.
  4. Advertisement

  1. Image titled Add the Same Value to Multiple Cells in Excel Step 14

    1

    Type the value into an empty cell. For example, if you want the word «wikiHow» to appear in multiple cells, type wikiHow into an empty cell above (if applying to a column) or beside (if applying to a row) the cells you want to fill.

  2. Image titled Add the Same Value to Multiple Cells in Excel Step 15

    2

    Tap the cell once to select it. This highlights the cell.[1]

  3. Image titled Add the Same Value to Multiple Cells in Excel Step 16

    3

    Tap the highlighted cell once more. This opens the Edit menu.

  4. Image titled Add the Same Value to Multiple Cells in Excel Step 17

    4

    Tap Fill on the menu. You will then see some arrow icons.

  5. Image titled Add the Same Value to Multiple Cells in Excel Step 18

    5

    Tap and drag the Fill arrow across the cells you want to fill. If you want to fill a row, tap the arrow pointing to the right and drag it until you’re finished filling all of the cells. If you’re filling a column, tap the arrow pointing downward, and then drag it down to fill the desired amount of cells.

  6. Advertisement

Ask a Question

200 characters left

Include your email address to get a message when this question is answered.

Submit

Advertisement

Thanks for submitting a tip for review!

References

About This Article

Article SummaryX

1. Enter the value into a blank cell.
2. Right-click the cell and click Copy.
3. Highlight the cells you want to paste into.
4. Right-click the highlighted area and select Paste.

Did this summary help you?

Thanks to all authors for creating a page that has been read 38,174 times.

Is this article up to date?

Diapazon yacheek 1 Как присвоить диапазону ячеек имя в формулах Excel

Доброго времени суток, уважаемый читатель!

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

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

Присвоить диапазону ячеек имя в формулах Excel возможно двумя способами:

  • 1 способ: простой и очень доступен, вы просто выделяете нужный вам диапазон и вводите его имя в поле «Имя», которое размещено с панели управления.

    Diapazon yacheek 2 Как присвоить диапазону ячеек имя в формулах Excel

  • 2 способ: с помощью меню, на вкладке «Формулы» (Formulas) вы выбираете команду «Присвоить имя» (Define Name). Вводите в поле «Имя», название диапазона и в поле «Диапазон» указываете диапазон, для которого вы присваиваете имя. При необходимости прописываете примечание, если есть необходимость объяснить ваши действия.

    Diapazon yacheek 3 Как присвоить диапазону ячеек имя в формулах Excel

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

Создать именную константу, также достаточно просто:

  1. Проходим, по указанном, выше пути «Формула» — «Присвоить имя»;
  2. В появившемся окне, как и раньше в поле «Имя» (Name) вводите имя константы, а вот туда где раньше вы вводили диапазон для имени, вводите значение вашей константы;

    Diapazon yacheek 4 Как присвоить диапазону ячеек имя в формулах Excel

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

Для того, что бы отредактировать или удалить назначенное вами имя, нужно использовать «Диспетчер имен»:

  1. На вкладке «Формулы» вам нужен пункт меню «Диспетчер имен» (Name manager);
  2. В появившемся окне вы устанавливаете курсор на нужном вам имени и выбираете необходимое действие «Редактировать» (Edit) или «Удалить» (Delete).

    Diapazon yacheek 5 Как присвоить диапазону ячеек имя в формулах Excel

Надеюсь, статья об том, как присвоить диапазону ячеек имя в формулах Excel, была вам полезной!

На чтение 4 мин. Просмотров 188 Опубликовано 24.05.2021

его статья говорит о присвоении значения или категории, относящейся к указанному диапазону в Excel. Например, если заданное число находится в диапазоне от 0 до 100, присвойте значение 5, если от 101 до 500, присвойте 10, а для диапазона от 501 до 1000 присвойте 15. Метод, описанный в этой статье, может помочь вам пройти через это.

Назначьте значение или категорию на основе диапазона чисел с помощью формулы

Объедините несколько рабочих листов/книг в один рабочий лист/книгу:

Объединение нескольких листов или книг в один лист или книгу может оказаться огромной задачей в вашей повседневной работе. Но, если у вас есть Kutools for Excel , его мощная утилита – Combine может помочь вам быстро объединить несколько рабочих листов, книг в один рабочий лист или книгу

Kutools for Excel : с более чем 200 удобными надстройками Excel, попробуйте бесплатно без ограничений в течение 60 дней. Загрузите бесплатную пробную версию прямо сейчас!

Вкладка Office Включите редактирование и просмотр с вкладками в Office и сделайте вашу работу намного проще …

Подробнее … Скачать бесплатно …

Kutools for Excel Решает Большинство ваших проблем и увеличивает вашу продуктивность на 80%.

  • Повторное использование чего угодно: добавьте наиболее часто используемые или сложные формулы, диаграммы и все остальное в избранное, и быстро использовать их в будущем.
  • Более 20 текстовых функций: извлечение числа из текстовой строки; Извлечь или удалить часть текстов; Преобразование чисел и валют в английские слова.
  • Инструменты слияния: несколько книг и листов в одну; Объединить несколько ячеек/строк/столбцов без потери данных; Объедините повторяющиеся строки и суммируйте.
  • Инструменты разделения: разделение данных на несколько листов в зависимости от значения; Из одной книги в несколько файлов Excel, PDF или CSV; Один столбец в несколько столбцов.
  • Вставить пропуск скрытых/отфильтрованных строк; Подсчет и сумма по цвету фона; Массовая отправка персонализированных писем нескольким получателям.
  • Суперфильтр: создавайте расширенные схемы фильтров и применяйте их к любым листам; Сортировать по неделе, дню, частоте и т. Д. Фильтр жирным шрифтом, формулами, комментарием …
  • Более 300 мощных функций; Работает с Office 2007-2019 и 365; Поддерживает все языки; Простое развертывание на вашем предприятии или в организации.

Подробнее … Бесплатная загрузка …

->


Назначьте значение или категорию на основе диапазона чисел с помощью формулы

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

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

Примечания :

1. В формуле A2> 0 , A2 , 5 означает, что если заданное число находится между 0 и 100, затем присвойте значение 5. А остальные имеют такое же значение. Пожалуйста, измените их по своему усмотрению.

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

3. Эта формула также может помочь назначить данные в текстовом формате, примените следующую формулу:

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

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

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

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

Примечание : в формуле A13 – это ячейка, содержащая заданный номер, на основе которого вы назначаете категорию, $ A $ 2: $ C $ 4 – это диапазон таблицы, который вы создали на шаге 1, а номер 3 – это номер столбца с присвоенным значением в таблице.

3. Затем перетащите маркер заливки вниз, чтобы получить все результаты.

Вкладка Office – просмотр, редактирование и управление книгами в Excel с вкладками:

Вкладка Office предоставляет интерфейс с вкладками, как в веб-браузерах, таких как Google Chrome, новые версии Internet Explorer и Firefox в Microsoft Excel. Он станет незаменимым помощником в работе и сэкономит время. См. Демонстрацию ниже:

Нажмите, чтобы получить бесплатную пробную версию вкладки Office!

->


Похожие статьи:

  • Как переместить всю строку на другой лист на основе значения ячейки в Excel?
  • Как рассчитать среднее значение в столбце на основе критериев в другом столбце Excel?
  • Как автоматически отправлять электронную почту на основе значения ячейки в Excel?
  • Как суммировать значения на основе выбора раскрывающегося списка в Excel ?

На чтение 18 мин. Просмотров 75.4k.

VBA Range

сэр Артур Конан Дойл

Это большая ошибка — теоретизировать, прежде чем кто-то получит данные

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

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

Содержание

  1. Краткое руководство по диапазонам и клеткам
  2. Введение
  3. Важное замечание
  4. Свойство Range
  5. Свойство Cells рабочего листа
  6. Использование Cells и Range вместе
  7. Свойство Offset диапазона
  8. Использование диапазона CurrentRegion
  9. Использование Rows и Columns в качестве Ranges
  10. Использование Range вместо Worksheet
  11. Чтение значений из одной ячейки в другую
  12. Использование метода Range.Resize
  13. Чтение Value в переменные
  14. Как копировать и вставлять ячейки
  15. Чтение диапазона ячеек в массив
  16. Пройти через все клетки в диапазоне
  17. Форматирование ячеек
  18. Основные моменты

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

Функция Принимает Возвращает Пример Вид
Range адреса
ячеек
диапазон
ячеек
.Range(«A1:A4») $A$1:$A$4
Cells строка,
столбец
одна
ячейка
.Cells(1,5) $E$1
Offset строка,
столбец
диапазон .Range(«A1:A2»)
.Offset(1,2)
$C$2:$C$3
Rows строка (-и) одна или
несколько
строк
.Rows(4)
.Rows(«2:4»)
$4:$4
$2:$4
Columns столбец
(-цы)
один или
несколько
столбцов
.Columns(4)
.Columns(«B:D»)
$D:$D
$B:$D

Введение

Это третья статья, посвященная трем основным элементам VBA. Этими тремя элементами являются Workbooks, Worksheets и Ranges/Cells. Cells, безусловно, самая важная часть Excel. Почти все, что вы делаете в Excel, начинается и заканчивается ячейками.

Вы делаете три основных вещи с помощью ячеек:

  1. Читаете из ячейки.
  2. Пишите в ячейку.
  3. Изменяете формат ячейки.

В Excel есть несколько методов для доступа к ячейкам, таких как Range, Cells и Offset. Можно запутаться, так как эти функции делают похожие операции.

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

Давайте начнем с самого простого метода доступа к ячейкам — с помощью свойства Range рабочего листа.

Важное замечание

Я недавно обновил эту статью, сейчас использую Value2.

Вам может быть интересно, в чем разница между Value, Value2 и значением по умолчанию:

' Value2
Range("A1").Value2 = 56

' Value
Range("A1").Value = 56

' По умолчанию используется значение
Range("A1") = 56

Использование Value может усечь число, если ячейка отформатирована, как валюта. Если вы не используете какое-либо свойство, по умолчанию используется Value.

Лучше использовать Value2, поскольку он всегда будет возвращать фактическое значение ячейки.

Свойство Range

Рабочий лист имеет свойство Range, которое можно использовать для доступа к ячейкам в VBA. Свойство Range принимает тот же аргумент, что и большинство функций Excel Worksheet, например: «А1», «А3: С6» и т.д.

В следующем примере показано, как поместить значение в ячейку с помощью свойства Range.

Sub ZapisVYacheiku()

    ' Запишите число в ячейку A1 на листе 1 этой книги
    ThisWorkbook.Worksheets("Лист1").Range("A1").Value2 = 67

    ' Напишите текст в ячейку A2 на листе 1 этой рабочей книги
    ThisWorkbook.Worksheets("Лист1").Range("A2").Value2 = "Иван Петров"

    ' Запишите дату в ячейку A3 на листе 1 этой книги
    ThisWorkbook.Worksheets("Лист1").Range("A3").Value2 = #11/21/2019#

End Sub

Как видно из кода, Range является членом Worksheets, которая, в свою очередь, является членом Workbook. Иерархия такая же, как и в Excel, поэтому должно быть легко понять. Чтобы сделать что-то с Range, вы должны сначала указать рабочую книгу и рабочий лист, которому она принадлежит.

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

code name worksheet

Следующий код показывает приведенный выше пример с использованием кодового имени рабочего листа, т.е. Лист1 вместо ThisWorkbook.Worksheets («Лист1»).

Sub IspKodImya ()

    ' Запишите число в ячейку A1 на листе 1 этой книги    
     Sheet1.Range("A1").Value2 = 67

    ' Напишите текст в ячейку A2 на листе 1 этой рабочей книги
    Sheet1.Range("A2").Value2 = "Иван Петров"

    ' Запишите дату в ячейку A3 на листе 1 этой книги
    Sheet1.Range("A3").Value2 = #11/21/2019#

End Sub

Вы также можете писать в несколько ячеек, используя свойство
Range

Sub ZapisNeskol()

    ' Запишите число в диапазон ячеек
    Sheet1.Range("A1:A10").Value2 = 67

    ' Написать текст в несколько диапазонов ячеек
    Sheet1.Range("B2:B5,B7:B9").Value2 = "Иван Петров"

End Sub

Свойство Cells рабочего листа

У Объекта листа есть другое свойство, называемое Cells, которое очень похоже на Range . Есть два отличия:

  1. Cells возвращают диапазон только одной ячейки.
  2. Cells принимает строку и столбец в качестве аргументов.

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

Sub IspCells()

    ' Написать в А1
    Sheet1.Range("A1").Value2 = 10
    Sheet1.Cells(1, 1).Value2  = 10

    ' Написать в А10
    Sheet1.Range("A10").Value2 = 10
    Sheet1.Cells(10, 1).Value2  = 10

    ' Написать в E1
    Sheet1.Range("E1").Value2 = 10
    Sheet1.Cells(1, 5).Value2  = 10

End Sub

Вам должно быть интересно, когда использовать Cells, а когда Range. Использование Range полезно для доступа к одним и тем же ячейкам при каждом запуске макроса.

Например, если вы использовали макрос для вычисления суммы и
каждый раз записывали ее в ячейку A10, тогда Range подойдет для этой задачи.

Использование свойства Cells полезно, если вы обращаетесь к
ячейке по номеру, который может отличаться. Проще объяснить это на примере.

В следующем коде мы просим пользователя указать номер столбца. Использование Cells дает нам возможность использовать переменное число для столбца.

Sub ZapisVPervuyuPustuyuYacheiku()

    Dim UserCol As Integer
    
    ' Получить номер столбца от пользователя
    UserCol = Application.InputBox("Пожалуйста, введите номер столбца...", Type:=1)
    
    ' Написать текст в выбранный пользователем столбец
    Sheet1.Cells(1, UserCol).Value2 = "Иван Петров"

End Sub

В приведенном выше примере мы используем номер для столбца,
а не букву.

Чтобы использовать Range здесь, потребуется преобразовать эти значения в ссылку на
буквенно-цифровую ячейку, например, «С1». Использование свойства Cells позволяет нам
предоставить строку и номер столбца для доступа к ячейке.

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

Использование Cells и Range вместе

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

Sub IspCellsSRange()

    With Sheet1
        ' Запишите 5 в диапазон A1: A10, используя свойство Cells
        .Range(.Cells(1, 1), .Cells(10, 1)).Value2 = 5

        ' Диапазон B1: Z1 будет выделен жирным шрифтом
        .Range(.Cells(1, 2), .Cells(1, 26)).Font.Bold = True

    End With

End Sub

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

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

Sub PokazatAdresDiapazona()

    ' Примечание. Использование подчеркивания позволяет разделить строки кода.
    With Sheet1

        ' Запишите 5 в диапазон A1: A10, используя свойство Cells
        .Range(.Cells(1, 1), .Cells(10, 1)).Value2 = 5
        Debug.Print "Первый адрес: " _
            + .Range(.Cells(1, 1), .Cells(10, 1)).Address

        ' Диапазон B1: Z1 будет выделен жирным шрифтом
        .Range(.Cells(1, 2), .Cells(1, 26)).Font.Bold = True
        Debug.Print "Второй адрес : " _
            + .Range(.Cells(1, 2), .Cells(1, 26)).Address

    End With

End Sub

В примере я использовал Debug.Print для печати в Immediate Window. Для просмотра этого окна выберите «View» -> «в Immediate Window» (Ctrl +  G).

ImmediateWindow

ImmediateSampeText

Свойство Offset диапазона

У диапазона есть свойство, которое называется Offset. Термин «Offset» относится к отсчету от исходной позиции. Он часто используется в определенных областях программирования. С помощью свойства «Offset» вы можете получить диапазон ячеек того же размера и на определенном расстоянии от текущего диапазона. Это полезно, потому что иногда вы можете выбрать диапазон на основе определенного условия. Например, на скриншоте ниже есть столбец для каждого дня недели. Учитывая номер дня (т.е. понедельник = 1, вторник = 2 и т.д.). Нам нужно записать значение в правильный столбец.

VBA Offset

Сначала мы попытаемся сделать это без использования Offset.

' Это Sub тесты с разными значениями
Sub TestSelect()

    ' Понедельник
    SetValueSelect 1, 111.21
    ' Среда
    SetValueSelect 3, 456.99
    ' Пятница
    SetValueSelect 5, 432.25
    ' Воскресение
    SetValueSelect 7, 710.17

End Sub

' Записывает значение в столбец на основе дня
Public Sub SetValueSelect(lDay As Long, lValue As Currency)

    Select Case lDay
        Case 1: Sheet1.Range("H3").Value2 = lValue
        Case 2: Sheet1.Range("I3").Value2 = lValue
        Case 3: Sheet1.Range("J3").Value2 = lValue
        Case 4: Sheet1.Range("K3").Value2 = lValue
        Case 5: Sheet1.Range("L3").Value2 = lValue
        Case 6: Sheet1.Range("M3").Value2 = lValue
        Case 7: Sheet1.Range("N3").Value2 = lValue
    End Select

End Sub

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

' Это Sub тесты с разными значениями
Sub TestOffset()

    DayOffSet 1, 111.01
    DayOffSet 3, 456.99
    DayOffSet 5, 432.25
    DayOffSet 7, 710.17

End Sub

Public Sub DayOffSet(lDay As Long, lValue As Currency)

    ' Мы используем значение дня с Offset, чтобы указать правильный столбец
    Sheet1.Range("G3").Offset(, lDay).Value2 = lValue

End Sub

Как видите, это решение намного лучше. Если количество дней увеличилось, нам больше не нужно добавлять код. Чтобы Offset был полезен, должна быть какая-то связь между позициями ячеек. Если столбцы Day в приведенном выше примере были случайными, мы не могли бы использовать Offset. Мы должны были бы использовать первое решение.

Следует иметь в виду, что Offset сохраняет размер диапазона. Итак .Range («A1:A3»).Offset (1,1) возвращает диапазон B2:B4. Ниже приведены еще несколько примеров использования Offset.

Sub IspOffset()

    ' Запись в В2 - без Offset
    Sheet1.Range("B2").Offset().Value2 = "Ячейка B2"

    ' Написать в C2 - 1 столбец справа
    Sheet1.Range("B2").Offset(, 1).Value2 = "Ячейка C2"

    ' Написать в B3 - 1 строка вниз
    Sheet1.Range("B2").Offset(1).Value2 = "Ячейка B3"

    ' Запись в C3 - 1 столбец справа и 1 строка вниз
    Sheet1.Range("B2").Offset(1, 1).Value2 = "Ячейка C3"

    ' Написать в A1 - 1 столбец слева и 1 строка вверх
    Sheet1.Range("B2").Offset(-1, -1).Value2 = "Ячейка A1"

    ' Запись в диапазон E3: G13 - 1 столбец справа и 1 строка вниз
    Sheet1.Range("D2:F12").Offset(1, 1).Value2 = "Ячейки E3:G13"

End Sub

Использование диапазона CurrentRegion

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

VBA CurrentRegion

Строка или столбец пустых ячеек означает конец CurrentRegion.

Вы можете вручную проверить
CurrentRegion в Excel, выбрав диапазон и нажав Ctrl + Shift + *.

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

Например:

Range («B3»). CurrentRegion вернет диапазон B3:D14

Range («D14»). CurrentRegion вернет диапазон B3:D14

Range («C8:C9»). CurrentRegion вернет диапазон B3:D14 и так далее

Как пользоваться

Мы получаем CurrentRegion следующим образом

' CurrentRegion вернет B3:D14 из приведенного выше примера
Dim rg As Range
Set rg = Sheet1.Range("B3").CurrentRegion

Только чтение строк данных

Прочитать диапазон из второй строки, т.е. пропустить строку заголовка.

' CurrentRegion вернет B3:D14 из приведенного выше примера
Dim rg As Range
Set rg = Sheet1.Range("B3").CurrentRegion

' Начало в строке 2 - строка после заголовка
Dim i As Long
For i = 2 To rg.Rows.Count
    ' текущая строка, столбец 1 диапазона
    Debug.Print rg.Cells(i, 1).Value2
Next i

Удалить заголовок

Удалить строку заголовка (т.е. первую строку) из диапазона. Например, если диапазон — A1:D4, это возвратит A2:D4

' CurrentRegion вернет B3:D14 из приведенного выше примера
Dim rg As Range
Set rg = Sheet1.Range("B3").CurrentRegion

' Удалить заголовок
Set rg = rg.Resize(rg.Rows.Count - 1).Offset(1)

' Начните со строки 1, так как нет строки заголовка
Dim i As Long
For i = 1 To rg.Rows.Count
    ' текущая строка, столбец 1 диапазона
    Debug.Print rg.Cells(i, 1).Value2
Next i

Использование Rows и Columns в качестве Ranges

Если вы хотите что-то сделать со всей строкой или столбцом,
вы можете использовать свойство «Rows и
Columns
» на рабочем листе. Они оба принимают один параметр — номер строки
или столбца, к которому вы хотите получить доступ.

Sub IspRowIColumns()

    ' Установите размер шрифта столбца B на 9
    Sheet1.Columns(2).Font.Size = 9

    ' Установите ширину столбцов от D до F
    Sheet1.Columns("D:F").ColumnWidth = 4

    ' Установите размер шрифта строки 5 до 18
    Sheet1.Rows(5).Font.Size = 18

End Sub

Использование Range вместо Worksheet

Вы также можете использовать Cella, Rows и Columns, как часть Range, а не как часть Worksheet. У вас может быть особая необходимость в этом, но в противном случае я бы избегал практики. Это делает код более сложным. Простой код — твой друг. Это уменьшает вероятность ошибок.

Код ниже выделит второй столбец диапазона полужирным. Поскольку диапазон имеет только две строки, весь столбец считается B1:B2

Sub IspColumnsVRange()

    ' Это выделит B1 и B2 жирным шрифтом.
    Sheet1.Range("A1:C2").Columns(2).Font.Bold = True

End Sub

Чтение значений из одной ячейки в другую

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

В следующем примере показано, как это сделать:

Sub ChitatZnacheniya()

    ' Поместите значение из B1 в A1
    Sheet1.Range("A1").Value2 = Sheet1.Range("B1").Value2

    ' Поместите значение из B3 в лист2 в ячейку A1
    Sheet1.Range("A1").Value2 = Sheet2.Range("B3").Value2

    ' Поместите значение от B1 в ячейки A1 до A5
    Sheet1.Range("A1:A5").Value2 = Sheet1.Range("B1").Value2

    ' Вам необходимо использовать свойство «Value», чтобы прочитать несколько ячеек
    Sheet1.Range("A1:A5").Value2 = Sheet1.Range("B1:B5").Value2

End Sub

Как видно из этого примера, невозможно читать из нескольких ячеек. Если вы хотите сделать это, вы можете использовать функцию копирования Range с параметром Destination.

Sub KopirovatZnacheniya()

    ' Сохранить диапазон копирования в переменной
    Dim rgCopy As Range
    Set rgCopy = Sheet1.Range("B1:B5")

    ' Используйте это для копирования из более чем одной ячейки
    rgCopy.Copy Destination:=Sheet1.Range("A1:A5")

    ' Вы можете вставить в несколько мест назначения
    rgCopy.Copy Destination:=Sheet1.Range("A1:A5,C2:C6")

End Sub

Функция Copy копирует все, включая формат ячеек. Это тот же результат, что и ручное копирование и вставка выделения. Подробнее об этом вы можете узнать в разделе «Копирование и вставка ячеек»

Использование метода Range.Resize

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

Использование функции Resize позволяет изменить размер
диапазона до заданного количества строк и столбцов.

Например:

Sub ResizePrimeri()
 
    ' Печатает А1
    Debug.Print Sheet1.Range("A1").Address

    ' Печатает A1:A2
    Debug.Print Sheet1.Range("A1").Resize(2, 1).Address

    ' Печатает A1:A5
    Debug.Print Sheet1.Range("A1").Resize(5, 1).Address
    
    ' Печатает A1:D1
    Debug.Print Sheet1.Range("A1").Resize(1, 4).Address
    
    ' Печатает A1:C3
    Debug.Print Sheet1.Range("A1").Resize(3, 3).Address
    
End Sub

Когда мы хотим изменить наш целевой диапазон, мы можем
просто использовать исходный размер диапазона.

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

Sub Resize()

    Dim rgSrc As Range, rgDest As Range
    
    ' Получить все данные в текущей области
    Set rgSrc = Sheet1.Range("A1").CurrentRegion

      ' Получить диапазон назначения
    Set rgDest = Sheet2.Range("A1")
    Set rgDest = rgDest.Resize(rgSrc.Rows.Count, rgSrc.Columns.Count)
    
    rgDest.Value2 = rgSrc.Value2

End Sub

Мы можем сделать изменение размера в одну строку, если нужно:

Sub Resize2()

    Dim rgSrc As Range
    
    ' Получить все данные в ткущей области
    Set rgSrc = Sheet1.Range("A1").CurrentRegion
    
    With rgSrc
        Sheet2.Range("A1").Resize(.Rows.Count, .Columns.Count) = .Value2
    End With
    
End Sub

Чтение Value в переменные

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

Sub IspVar()

    ' Создайте
    Dim val As Integer

    ' Читать число из ячейки
    val = Sheet1.Range("A1").Value2

    ' Добавить 1 к значению
    val = val + 1

    ' Запишите новое значение в ячейку
    Sheet1.Range("A2").Value2 = val

End Sub

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

Sub IspVarText()

    ' Объявите переменную типа string
    Dim sText As String

    ' Считать значение из ячейки
    sText = Sheet1.Range("A1").Value2

    ' Записать значение в ячейку
    Sheet1.Range("A2").Value2 = sText

End Sub

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

Sub VarNeskol()

    ' Считать значение из ячейки
    Sheet1.Range("A1:B10").Value2 = 66

End Sub

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

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

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

Вы можете просто скопировать ряд ячеек, как здесь:

Range("A1:B4").Copy Destination:=Range("C5")

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

Работает так:

Range("A1:B4").Copy
Range("F3").PasteSpecial Paste:=xlPasteValues
Range("F3").PasteSpecial Paste:=xlPasteFormats
Range("F3").PasteSpecial Paste:=xlPasteFormulas

В следующей таблице приведен полный список всех типов вставок.

Виды вставок
xlPasteAll
xlPasteAllExceptBorders
xlPasteAllMergingConditionalFormats
xlPasteAllUsingSourceTheme
xlPasteColumnWidths
xlPasteComments
xlPasteFormats
xlPasteFormulas
xlPasteFormulasAndNumberFormats
xlPasteValidation
xlPasteValues
xlPasteValuesAndNumberFormats

Чтение диапазона ячеек в массив

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

Range("A3:Z3").Value2 = Range("A1:Z1").Value2

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

В следующем коде показан пример использования массива с
диапазоном.

Sub ChitatMassiv()

    ' Создать динамический массив
    Dim StudentMarks() As Variant

    ' Считать 26 значений в массив из первой строки
    StudentMarks = Range("A1:Z1").Value2

    ' Сделайте что-нибудь с массивом здесь

    ' Запишите 26 значений в третью строку
    Range("A3:Z3").Value2 = StudentMarks

End Sub

Имейте в виду, что массив, созданный для чтения, является
двумерным массивом. Это связано с тем, что электронная таблица хранит значения
в двух измерениях, то есть в строках и столбцах.

Пройти через все клетки в диапазоне

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

Вы можете сделать это, используя цикл For Each, показанный в следующем коде.

Sub PeremeschatsyaPoYacheikam()

    ' Пройдите через каждую ячейку в диапазоне
    Dim rg As Range
    For Each rg In Sheet1.Range("A1:A10,A20")
        ' Распечатать адрес ячеек, которые являются отрицательными
        If rg.Value < 0 Then
            Debug.Print rg.Address + " Отрицательно."
        End If
    Next

End Sub

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

Стандартный цикл более гибок в отношении используемого вами
порядка, но он медленнее, чем цикл For Each.

Sub PerehodPoYacheikam()
 
    ' Пройдите клетки от А1 до А10
    Dim i As Long
    For i = 1 To 10
        ' Распечатать адрес ячеек, которые являются отрицательными
        If Range("A" & i).Value < 0 Then
            Debug.Print Range("A" & i).Address + " Отрицательно."
        End If
    Next
 
    ' Пройдите в обратном порядке, то есть от A10 до A1
    For i = 10 To 1 Step -1
        ' Распечатать адрес ячеек, которые являются отрицательными
        If Range("A" & i) < 0 Then
            Debug.Print Range("A" & i).Address + " Отрицательно."
        End If
    Next
 
End Sub

Форматирование ячеек

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

Sub FormatirovanieYacheek()

    With Sheet1

        ' Форматировать шрифт
        .Range("A1").Font.Bold = True
        .Range("A1").Font.Underline = True
        .Range("A1").Font.Color = rgbNavy

        ' Установите числовой формат до 2 десятичных знаков
        .Range("B2").NumberFormat = "0.00"
        ' Установите числовой формат даты
        .Range("C2").NumberFormat = "dd/mm/yyyy"
        ' Установите формат чисел на общий
        .Range("C3").NumberFormat = "Общий"
        ' Установить числовой формат текста
        .Range("C4").NumberFormat = "Текст"

        ' Установите цвет заливки ячейки
        .Range("B3").Interior.Color = rgbSandyBrown

        ' Форматировать границы
        .Range("B4").Borders.LineStyle = xlDash
        .Range("B4").Borders.Color = rgbBlueViolet

    End With

End Sub

Основные моменты

Ниже приводится краткое изложение основных моментов

  1. Range возвращает диапазон ячеек
  2. Cells возвращают только одну клетку
  3. Вы можете читать из одной ячейки в другую
  4. Вы можете читать из диапазона ячеек в другой диапазон ячеек.
  5. Вы можете читать значения из ячеек в переменные и наоборот.
  6. Вы можете читать значения из диапазонов в массивы и наоборот
  7. Вы можете использовать цикл For Each или For, чтобы проходить через каждую ячейку в диапазоне.
  8. Свойства Rows и Columns позволяют вам получить доступ к диапазону ячеек этих типов

Как присвоить одной ячейке диапазон значений?

Автор youn2, 16.02.2009, 13:15

« назад — далее »

Вопрос к знатокам экселя! Вчера весь вечер просидел, изучая функции, так и не нашел нужной, подскажите пожалуйста, если кто знает.

Такая ситуация – есть ряд ячеек в столбце с числовыми величинами. При применении автофильтра с параметрами (к примеру, больше или равно 50 и меньше или равно 150) получаю необходимую выборку из нескольких ячеек. Но в данном случае каждой ячейке присвоена одна определенная величина (55 например, или 72). Вопрос в следующем – как присвоить одной ячейке диапазон значений? То есть, чтобы одна ячейка содержала диапазон значений например от 10 до 60 с интервалом в 1 (10, 11, 12, …. 59, 60). И при применении автофильтра эта ячейка попадала в его выборку  «больше или равно 50 и меньше или равно 150». Вопрос понятен? Описал проблему как смог. Очень надеюсь на вашу помощь!


ЦитироватьВопрос понятен?

Лично мне не понятен.

ЦитироватьТо есть, чтобы одна ячейка содержала диапазон значений например от 10 до 60 с интервалом в 1 (10, 11, 12, …. 59, 60).

Как Вы себе это представляете: В одной ячейке через запятую или другой разделитель записаны 60 чисел? — тогда это получится текстовая строка, а не число — и она, разумеется не попадет в выборку числового автофильтра.
Или Вы хотите наложить на ячейку ограничение, запрещающее вводить в нее числа, кроме указанного диапазона?
Это возможно — смотрите меню СЕРВИС / ПРОВЕРКА / Целое Число.
В этом случае в ячейке могут быть записаны лишь эти числа, и если число окажется больше 50, то оно попадет в выборку.

P.S. Есть еще одна возможность: с помощью меню ФОРМАТ ЯЧЕЕК выбрать пользовательский формат («10…»#;-#;0;@) — т.е. перед положительными числами выводится на экран строка «10…», затем ввести в ячейку число 60 — на экране должно отобразиться «10…60», но на самом деле значение ячейки останется простым числом 60, которое разумеется попадет в указанную выборку.


Цитата: youn2 от 16.02.2009, 13:15
как присвоить одной ячейке диапазон значений? То есть, чтобы одна ячейка содержала диапазон значений например от 10 до 60 с интервалом в 1 (10, 11, 12, …. 59, 60).

Допустим, мы можем внести в ячейку массив через формулу массива:
{=СТРОКА(A1:A60)}

ЦитироватьИ при применении [url=https://msexcel.ru/content/view/27/2/]_автофильтр_[/url]а эта ячейка попадала в его выборку  «больше или равно 50 и меньше или равно 150».

…но стандартный _автофильтр_ будет брать только первое значение из него, как ни крути. Но возьму себе на заметку, если буду делать ШпецФильтр. ;)

Знания недостаточно, необходимо применение. Желания недостаточно, необходимо действие. (с) Брюс Ли


Объясню поподробнее. Я делаю базу объектов недвижимости. Каждый объект имеет свои характеристики (этаж, адрес, телефон, площадь и т.д.). То есть каждый объект занимает одну строку в базе. И таких объектов несколько тысяч. Но некоторые объекты имеют множество площадей. То есть для одного объекта метраж может быть от 30 и до 500 метров (например, 12 помещений различного метража). И этот диапазон должен быть в одной ячейке, чтобы при поиске нужного метража эта ячейка попадала в выборку, если площадь совпадает.

ЦитироватьДопустим, мы можем внести в ячейку массив через формулу массива:
{=СТРОКА(A1:A60)}

Можно поподробнее про массив, это может как-то помочь в данном случае?


Цитата: youn2 от 16.02.2009, 17:45
Но некоторые объекты имеют множество площадей. То есть для одного объекта метраж может быть от 30 и до 500 метров (например, 12 помещений различного метража). И этот диапазон должен быть в одной ячейке, чтобы при поиске нужного метража эта ячейка попадала в выборку, если площадь совпадает.

По-моему проще использовать две колонки: минимальная/единственная площадь и максимальная площадь. Но поиск автофильтром получится сложнее.  ;)


  • Профессиональные приемы работы в Microsoft Excel

  • Обмен опытом

  • Microsoft Excel

  • Как присвоить одной ячейке диапазон значений?

Понравилась статья? Поделить с друзьями:
  • Как присвоить номер ячейки в excel
  • Как проверить активацию word
  • Как проверить данные в массиве excel
  • Как присвоить название ячейки в excel
  • Как проверить word файл на вирусы