Excel Cell
Cell is an Object of Excel Sheet to enter information. It represents with Column Name followed by Row Number. The address of the First Cell in the Excel Sheet is A1 (A is the First Column and 1 is the first Row in Excel sheet). The format of an Excel spread sheet looks like a Table and the intersection of Rows and Columns formats blocks (boxes), each of these small blocks are called Cells in Excel.
How to enter data in a Cell
You can select any Cell in the Excel and press F2 function key to make the Cell editable. Then enter the data using your keyboard in the Cell. You can also double click on a Cell to make it to data entry mode.
What kind of information we can enter in a Cell
We can enter text, numbers, dates, formulas, images, chars, icons and special characters in Excel Cells. We can perform mathematical and logical operations based on our requirements. We can also format the Cell with font styles, colors, number formats,etc.
Type of Data | Approach to Enter in Excel |
---|---|
Enter Date in excel | Use Shortcut key CTRL+ ; (Control and Semicolon) to enter date in Excel. |
Enter formula in excel | Double Click on any Cell and start with = and enter your formula expression. |
Enter time in excel | You can use TIMEVALUE(time_text) function to accept the Time. Or you can formate the cell into required time format “h:mm:ss AM/PM”, and enter time value in the cell. |
Enter today’s date in excel | You can use Ctrl+ ; Shortcut key to enter todats Date in Excel. |
Enter a checkmark in excel | You can use Char(252) function or Alt+0252 to enter Check Box Character and Change Font of the Cell to Wingdings. |
Enter a drop down list in excel | Goto Data tab in the Ribbon menu and Clcik on the Data Validation Command to enter Drop down List. |
Enter 20 digit number in excel | Start with ‘ (apostrophe) and enter the number or format the cell as Text, the number will save as string. |
Enter a checkbox in excel | Use alt code 0252 and format font to Wingdings. Alternatively, use Symbol command in Insert menu. |
Merge Split (Un Merge) Cells
We have following options and tools in the Excel to merge and unmerge (split) the cells in Excel. You use it based on your requirement.
How to Merge Cells in Excel ?
Follow the below steps to merge the Cells in Excel:
- Select the required range of cells in the sheet
- Go to Home tab in the Ribbon Menu
- Press the ‘Merge Cells‘ Command to merge the Cells.
How to Split Merged Cells in Excel?
Follow the below steps to split the merged Cells in Excel:
- Select the merged cell in the sheet
- Go to Home tab in the Ribbon Menu
- Press the ‘Merge Cells‘ Command to split the cells.
How to Merge Data in Two or More Cells in Excel?
Follow the below steps to merge the data in multiple Cells in Excel:
- You can use the Concatenate Formula to Merge the Cells. For example, =Concatenate(A1,B1)
- You can use concatenate operator & to merge the cell data. For example, =A1&B1
How to Change Excel Cell Size?
You can follow the one of the method to increase the size of the cell in Excel.
- By increasing the width of the column
- Increase the height of the Row
- Increase the font size to make the cell bigger
- merge multiple Cells to make one large size cell
How to Split Data in a Cell in Excel?
Follow the below steps to split the data in a Cell into multiple Cells and Columns:
- Select the required Cell or Column to Split
- Go to Data tab in the Excel Ribbon menu
- Click on the ‘Text to Column’ command in the Data tools group
- Choose and Delimited character or fixed with option to split the data.
How to Extract the Text from Excel Cell?
Follow the below steps to split the data in a Cell into multiple Cells and Columns:
- Select the required Cell or Column to Split
- Go to Data tab in the Excel Ribbon menu
- Click on the ‘Text to Column’ command in the Data tools group
- Choose and Delimited character or fixed with option to split the data.
Lock and Unlock Cells in Excel
We need to protect our data in Excel to hide it from others users. We can use built in Excel tools to lock and unlock the Cells.
How to Lock Excel Cells?
You can lock entire sheet or specific range of cells in the Excel. Follow the below steps to lock the required Cells in the Excel.
- Select the required range of cells to lock (By default Excel cells are locked)
- Then Go to Review Tab in the Excel Ribbon menu
- Click on the ‘Protect Sheet’ command available in the Protect Group.
- Choose the Required things to restrict and enter the password to protect
- And confirm it and press OK to lock it.
How to Un Lock Excel Cells?
Follow the below steps to unlock the cells in Excel. Make sure you have the password to unlock the sheet.
- Go to Review Tab in the Excel Ribbon menu
- Click on the ‘Unprotect Sheet’ command available in the Protect Group.
- Enter the password to un lock the sheet
- Select the required range of cells to un lock.
- Right Click on it and press Format Cells command
- Un select the Locked check mark in the Protection Tab
- Now you can reset the password (if required)
Removing Text from Cells
You can select the required cells to remove the text, press delete key on your keyboard. Excel stores verity of data in Cells, you can follow the below methods to remove the required data from Cells.
Data | Approach to remove |
---|---|
Text | Click Delete Button or Press the Clear Contents command from Editing Tools in Home Tab. |
Format | Press Clear Formats command from Editiong tools to delete only Formats of the Cells. |
Comments | Press Clear Comments command from Editiong tools to delete only Comments in the Cells. |
Delete Everything | Press Clear All command from Editiong tools to delete everything in Cells. |
How to Remove Specific Text From Excel Cell
You can follow the one the following methods to remove specific text from Excel Cells.
- One Cell: You can double click on the cell and select the required text and press delete button from your keyboard.
- Multiple Cells or Columns: You can select entire range of cells and use find and Replace Dialog (Ctrl+H) to remove the specific text (Find What:= your text, Leave blank in the Replace with: text box)
- Part Of Text Criteria: You can use formulas (Mid, Find,Len,Trim) to remove the text based on specific criteria or to Remove Part Of Text From Excel Cell.
How to New Line In Excel Cell
Press Alt+Enter to add new line in Excel. You can use Char(10) with Excel Formula.
Fill Color in Excel Cells
You can fill single or multiple color to set the background colors of the Excel Cells. You fill Solid color or Gradients Color.
- Standard Colors: You can select any cell and go to the Home tab and click on the fill color control (color bucket icon) to set the standard colors in Excel.
- Theme Colors: You can use the one of the colors from Excel Theme Styles, All the cells will change automatically when you change color theme.
- Gradient Colors: You can set Multiple color shading within a single cell using Gradient Effects in Excel. Click on the Format Cells command from the right click menu. And go to Fill Tab and press the Fill effects to set the Cells gradient colors. You can use this option to Split a cell in excel with two or three colors
Cell in Excel Object Model
Cell is a child object of Worksheet. Worksheet is a collection of all cells in the worksheet. Portion of the spreadsheet (One or group of Cells) is called Range in Excel. Here is the Object Model of Excel Cell.
How to Refer a Cell
We use Column Name followed by Row Number to refer a Cell in Excel. For example, C5 is the intersection area of Column C and Row 5. Here C5 is called the address of the Cell. There are two types of methods we can use to refer a Cell.
- Relative Reference: The address of the Cell will change relatively while performing the Excel Operations. It is the default reference type and we can refer as A1 to refer the first cell of a sheet.
- Absolute Reference: The address of the Cell will be fixed and will not change while performing Excel Operations like Copying, Dragging and Auto filling the Cells. We can put $ symbol to make the Row or Column Absolute. For Example, $C$5 is the absolute reference of the cell A5.
We refer the cells to use the data of any cell in other cells and objects. We can use Relative reference, Absolute reference or both combined based on our requirement.
For Example:
=$D$5: will lock both Column and Row, Both Column and Rows are Absolute.
=$D5: will lock Column and will not lock the Row, Column is Absolute and Row is Relative.
=D$5: will lock Row and will not lock the Column, Row is Absolute and Column is Relative.
= D5: Both Column and Rows are Relative.
What is an Active Cell?
A Cell which is currently selected in the Active Sheet of the Active Window is called Active Cell. ActiveCell is an Object of the Worksheet Object , we can use ActiveCell to deal with the currently selected cell of the active worksheet.
For Example:
- We can Enter the data in the Active Cell by typing from keyboard. You can use ActiveCell.Value=10 in Excel Macros.
- We can Format the Active Cell using builtin tools, You can format using Excel Macros like ActiveCell.Font.Bold
© Copyright 2012 – 2020 | Excelx.com | All Rights Reserved
Page load link
A cell is an essential part of MS-Excel. It is an object of Excel worksheets. Whenever you open Excel, the Excel worksheet contains cells to store the information in them. You enter content and your data into these cells. Cells are the building blocks of the Excel worksheet. So, you should know every single point about it.
In the Excel worksheet, a cell is a rectangular-shaped box. It is a small unit of the Excel spreadsheet. There are around 17 billion cells in an Excel worksheet, which are united together in horizontal and vertical lines.
An Excel worksheet contains cells in rows and columns. Rows are labeled as numbers and columns as alphabets. It means the rows are identified by numbers and columns by alphabets.
Which data can enter into cell
Excel consists of a group of cells in a worksheet. You can enter data in any of these cells. Excel allows the user to enter any type of data in Excel cells, such as numeric, text, date, and time data. Whatever you enter in a cell, it appears inside the cell and as well as in the formula bar.
Double-tap on any of a cell to make it editable and write the data in it. In Excel, you can enter any type of data in Excel cells, such as number, string, text, date, time, etc. In addition, the users can also perform operations on it.
How to identify cell number?
In Excel, you can easily identify the cell number you are currently in. You can either find the cell number inside the Name box or also from row and column headers.
The highlighted row and column in the header is the cell number when a cell is selected. See the screenshot below:
Else see the cell number inside the Name box of the currently selected cell and get the cell number, e.g., D15.
Enter data into the cell
To enter the data/information into a cell, double-tap on any cell to make it editable and write the data in it. Let’s understand with an example.
Delete cell data
Select the cell along with data inside it and either press Backspace or Delete button to delete the content of the cell. It will delete one letter at a time means 1 tap backspace/delete will delete only one letter of that cell.
You can also delete cell data in one go. For this, select the cell data and then either press the Backspace or Delete button. The selected cell content will be deleted.
You can also use this Delete button to delete the content of multiple cells. For this, you have to select cells with data whose data you want to delete and press the Delete key on your keyboard. The data of the selected cells will be deleted.
Delete cell
There is a huge difference between deleting the cell data or deleting a cell itself. So, don’t be confused between them. To delete the cells, you have to perform a bit different steps, as we are discussing below:
Step 1: Select one or more cells, which you want to delete. E.g., A3, A4, and B3, B4.
Step 2: Right-click any of the selected cells and click on the Delete command present inside the list.
Step 3: Mark the relevant radio button and click on the OK button. We have chosen to Shift cells up option to shift the remaining cells data of the selected column to the upper row.
Step 4: The selected cells will be deleted and the remaining cells will shift up at the place of deleted cells.
Cell range
Cell range is one, which has a starting and ending point. When the multiple cells are selected in a sequence, it is called as cell range. Cell range shows from start cell to end cell. Selected cells must be in sequence without any gap in selection.
For example,
Cell range A1:A8
Cell A1 to A8 is selected in this range. It means that total 8 cells are selected.
Cell range A1:B8
Cell A1 to A8 and B1 to B8 are selected in this cell range. It means that total 16 cells are selected.
How to select multiple cells
Sometimes, there is a need to select a large range of cell data in an Excel sheet. You can easily select a larger group of cells or a cell range in two ways. Either with mouse or shift and arrow key.
1. Continues selection
Firstly, we will show you a contiguous selection of multiple cells using both methods.
- Select cells with mouse
Click on a cell, hold the mouse left key and drag until you got select all needed cells.
- Select cells with Shift and arrow key
There is one more way selecting multiple cells at one time. You can use the Shift key with arrow keys (choose direction) to select multiple cells.
Firstly, click on one cell in the Excel worksheet. Keep pressing the shift key and use the required arrow key with it according to selection to select the multiple cells.
2. Scattered selection
Excel also allows to select multiple cells from different rows and columns without following any contiguous selection range process as above. We can do it only using the Ctrl key.
- Select scattered cells with the CTRL key
Excel provides a way to select two or more cells of different rows and different columns. You can use the CTRL key to hold the selection and then choose the cells to select.
Remember that only those cells will be selected which has some data. Blank cells cannot be selected even using the Ctrl key.
Cut, copy, and paste the cells data
Cut, copy, and paste are the most used operations of every tool. Excel allows its users to copy or cut the content from one place and paste it to another cell in Excel.
Excel also provides shortcut commands for these operations. CTRL + C for copy, CTRL + P for paste the copied content, and CTRL + X for cut is used in Excel. These shortcut keys are the same for almost every tool.
Copy and paste the cell data
Step 1: Select the cell whose data you want to copy and press the CTRL+C command to copy the data.
Step 2: Now, go to that where you want to paste the copied data and press the CTRL+P shortcut command to place the data there.
Step 3: Your data has been copied from one cell and pasted to another one.
Cut and paste the cell data
Step 1: Select the cell whose data you want to cut and press the CTRL+X command.
Step 2: Now, go to the cell where you want to paste the cut data and press the CTRL+P shortcut command to place the data there.
Step 3: Your data has been placed from one cell and pasted to another one.
How to increase the size of cell
In Excel, you can increase the size of cells in following ways:
- Increase the height of the row from row header
- Increase the width of the column from column header
- Merge the two or more cells to enhance the cell size
- Increase the font size to make the cell bigger
You can use any of these methods accordingly as needed.
Last update on August 19 2022 21:50:34 (UTC/GMT +8 hours)
What is a cell ?
The worksheet of a workbook in Excel 2013 are made up of thousands of rectangles, are called cells. A cell is the intersection of a row and a column. Columns are identified by letters (A, B, C…), whereas rows are identified by numbers (1, 2, 3…). Here is the picture below to explain the rows and columns.
Each cell has its own name, or cell address, a combination of column and row. Here in the example below, the selected cell is the intersection or column B and row 4, so the cell address is B4. The cell address will also appear in the Name box. The another way to understand the selected row and column that, a cell’s column and row headings are highlighted when the cell is selected.
Multiple cells can also be selected at the same time. A group of cells is known as a cell range. A range of cells can be referred by using the cell addresses of the first and last cells and separated by a colon. Here in the picture below a cell range that included cells B1, B2, B3, B4, and B5 would be written as B1:B5.
.
Select a cell:
To input new data into a cell or edit cell content, you have to select the desired cell and click the mouse into your desired cell to select it.
A border will appear around the selected cell, and the column and row heading associated with the selected will be highlighted. The cell will remain selected until you click another cell in the worksheet.
A cell can also be selected using the arrow keys on your keyboard.
Select a range of cells:
Sometimes we need to select a range of cells, then you need to press and hold the left mouse button, and drag the mouse until all of the adjoining cells you wish to select are highlighted and release the mouse.
The cells will remain selected until you click another cell in the worksheet.
Merge Cells:
Two or more cells can be merged in one depends on your requirement.
Merge multi Cells:
You can selecte multi cells, and then click Merge & Center in the alignment group of ribbon menu. Then choose from the option.
Here in the example above select B3 to D3 and click on Merge & Center. Three cells merge and make one cell. Here is the picture below.
Delete a cell:
There is an important different between deleting the content of a cell and deleting the cell itself. If you want to delete a cell or cells , the cells below and right of the selected cell(s) will shift up or left and replace the deleted cells.
Select the cell(s) which you want to delete.Then select the Delete command under cell group from the Home tab of the Ribbon, and click on Delete Cells. Here is the example below.
The picture below shows that the, cells below have been shifted up.
Here is another example
The picture below shows that the, cells right have been shifted left.
As a cell is associated with a row and column, so at the time of deletion of a cell or cells the four option may come. These are —
A cell may be deleted by replacing the below cell to up or by replacing the right cell to left.
The entire row or rows associated with the cell or cells may be deleted.
The entire column or columns associated with the cell or cells may be deleted.
Here is the picture below.
The above picture shows that, the C2 cell is selected and this cell is associated with column C and row 2. So the C2 cell can be deleted by C3 up or by shifting the D2 cell left or the entire C column can be deleted or entire 2 row can be deleted.
Cell content
Information entered into a spreadsheet will be stored in a cell. Each cell can contain several different kinds of content, including text, formatting, formulas, and functions.
Text type data
Cells can contain text, such as letters, numbers, and dates.
Insert content into cell
Click a cell to select it.
Type content into the selected cell, then press Enter on your keyboard. The content will appear in the cell and the formula bar. You can also input and edit cell content in the formula bar.
Copy and paste cell content
Excel allows you to copy content that is already entered into the spreadsheet and paste that content into other cells.
Select the cell(s) that you want to copy. Then click the Copy command under the Home tab or press Ctrl+C on the keyboard.
The copied cells will now have a dashed box around them. Here is the picture below after click the copy command.
Now select the cell where you wish to paste the content and click on paste command. Here is the picture below.
Click the arrow of the Paste command under the Home tab, or press Ctrl+V on the keyboard.
Select the cell or cells you want to cut then click the Cut command under the Home tab, or press Ctrl+X on the keyboard. The cells will now have a dashed box around them.
Select the cells where you wish to paste the content.
Click the Paste command under Home tab, or press Ctrl+V on the keyboard. The content from the cells which you have selected for cut will move to the desired location. See the picture below.
To access more paste options:
To get various types of paste options, click the drop-down arrow on the Paste command. Here is the picture below.
Instead of choosing commands from the Ribbon, you can get the options quickly by right-clicking the mouse on the cell where you want to paste the copied or cut content.
Drag and drop cells:
Another way to move the content instead of cut command is to drag and drop cells to move the contents. Select the range A3:C4, and place the mouse pointer at any edge of selected area. A four-headed arrow will appear, then press and hold the mouse and drag your desired place and release the mouse, the selected content will move. Here is the picture below.
The picture below shows that the content of A3 to C4 have been moved into A6 to C7.
Delete cell content:
Select the cell with content which you want to delete.
Press the Delete or Backspace key on the keyboard. The cell’s contents will be deleted.
Edit cell content
The content of a cell can be modified by the various way. You can do it by double clicking the cell where the content located, or select the cell and click on formula bar and edit the content or select the cell and press the F2 function key from the keyboard to edit the content of the cell.
Previous: Backstage View — Excel 2013
Next:
Cell References in Excel
A worksheet in Excel is made up of Rows and Columns. Intersection of a Row and column in an Excel worksheet is a rectangle called as a Cell. Cells store a value, a formula, or text. An Excel worksheet contains very large number of cells. A cell is a smallest building block of an Excel worksheet.
Rows in Excel worksheet
Similar to a Row in any table, a Row in Excel worksheet runs horizontally. Rows in Excel worksheet are identified by Row numbers. Row numbers in Excel 2019 starts from 1 and ends in 1048576.
Columns in Excel worksheet
Similar to a Column in any table, a Column in Excel worksheet runs vertically. Columns in Excel worksheet are identified by Column letters. Column letters in Excel 2019 starts from «A» and ends in «XFD».
Cells in Excel worksheet
Intersection of a Row and column in an Excel worksheet is a rectangle called as a Cell. A Cell can store one data at a time. The data can be text, number, formula, date etc.
A Cell in Excel worksheet is identified by a Cell Address consisting of Column letter and Row number. Below image shows a Cell in Excel worksheet.
The Cell shown below is the intersection of Column «C» and Row «5». Therefore the Cell address of cell shown below is «C5».
The thick border outline around the selected Cell in above image indicates that it is the Active cell in Excel Worksheet. The Active cell is where the focus is on and where the data will be entered when a key is typed on keyboard. Below image shows the Actice Cell as C5, which is hi-lighted with a thick border. The Cell address of Active cell is displayd in Cell Name box in Excel formula bar.
На чтение 18 мин. Просмотров 75.3k.
сэр Артур Конан Дойл
Это большая ошибка — теоретизировать, прежде чем кто-то получит данные
Эта статья охватывает все, что вам нужно знать об использовании ячеек и диапазонов в VBA. Вы можете прочитать его от начала до конца, так как он сложен в логическом порядке. Или использовать оглавление ниже, чтобы перейти к разделу по вашему выбору.
Рассматриваемые темы включают свойство смещения, чтение
значений между ячейками, чтение значений в массивы и форматирование ячеек.
Содержание
- Краткое руководство по диапазонам и клеткам
- Введение
- Важное замечание
- Свойство Range
- Свойство Cells рабочего листа
- Использование Cells и Range вместе
- Свойство Offset диапазона
- Использование диапазона CurrentRegion
- Использование Rows и Columns в качестве Ranges
- Использование Range вместо Worksheet
- Чтение значений из одной ячейки в другую
- Использование метода Range.Resize
- Чтение Value в переменные
- Как копировать и вставлять ячейки
- Чтение диапазона ячеек в массив
- Пройти через все клетки в диапазоне
- Форматирование ячеек
- Основные моменты
Краткое руководство по диапазонам и клеткам
Функция | Принимает | Возвращает | Пример | Вид |
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, начинается и заканчивается ячейками.
Вы делаете три основных вещи с помощью ячеек:
- Читаете из ячейки.
- Пишите в ячейку.
- Изменяете формат ячейки.
В 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, вы должны сначала указать рабочую книгу и рабочий лист, которому она принадлежит.
В оставшейся части этой статьи я буду использовать кодовое имя для ссылки на лист.
Следующий код показывает приведенный выше пример с использованием кодового имени рабочего листа, т.е. Лист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 . Есть два отличия:
- Cells возвращают диапазон только одной ячейки.
- 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).
Свойство Offset диапазона
У диапазона есть свойство, которое называется Offset. Термин «Offset» относится к отсчету от исходной позиции. Он часто используется в определенных областях программирования. С помощью свойства «Offset» вы можете получить диапазон ячеек того же размера и на определенном расстоянии от текущего диапазона. Это полезно, потому что иногда вы можете выбрать диапазон на основе определенного условия. Например, на скриншоте ниже есть столбец для каждого дня недели. Учитывая номер дня (т.е. понедельник = 1, вторник = 2 и т.д.). Нам нужно записать значение в правильный столбец.
Сначала мы попытаемся сделать это без использования 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.
Строка или столбец пустых ячеек означает конец 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
Основные моменты
Ниже приводится краткое изложение основных моментов
- Range возвращает диапазон ячеек
- Cells возвращают только одну клетку
- Вы можете читать из одной ячейки в другую
- Вы можете читать из диапазона ячеек в другой диапазон ячеек.
- Вы можете читать значения из ячеек в переменные и наоборот.
- Вы можете читать значения из диапазонов в массивы и наоборот
- Вы можете использовать цикл For Each или For, чтобы проходить через каждую ячейку в диапазоне.
- Свойства Rows и Columns позволяют вам получить доступ к диапазону ячеек этих типов