Remkomplekty.ru

IT Новости из мира ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Excel cells select

Excel cells select

cannot select a cell unless that particular worksheet is displayed/active ??

Selecting Individual Cells

If using the notation Range(«An») is not convenient you can use Cells(rows,columns) instead.
The row and column indexes both start at 1 for Cells(row, column)
It is also possible to use the GoTo dialog box.

Application.GoTo

This is comparable to the select method except the range is passed as a parameter
If the range is on another worksheet then that worksheet will be automatically selected.
GoTo is a method that causes Excel to select a range of cells and activate the corresponding workbook.
It takes an optional Object parameter (either String or Range).
It also takes an optional second Object parameter that can be set to True to indicate if you want Excel to scroll the window so that the selection is in the top-left corner.

This is also has an optional scrolling parameter ??
The following line of code is not allowed.

Selecting a Range (or Multiple Cells)

You can also use the following abbreviation although it is not recommended:

Selecting the whole worksheet

Selecting a Different worksheet

The following line of code will not work unless Sheet1 is currently selected.

You must select the worksheet first and then select the range.

Selecting using the Current Selection

Using the Selection object performs an operation on the currently selected cells.
If a range of cells has not been selected prior to this command, then the active cell is used.

Selecting using the Active Cell

The ActiveCell is often used and refers to the cell that is currently selected.
You can also easily obtain the cell address of the active cell.

Selecting the CurrentRegion or UsedRange

The CurrentRegion property setting consists of a rectangular block of cells surrounded by one or more blank rows or columns.
The UsedRange is the range of all non-empty cells.

Selecting using Relative References

You can use the Range property of a Range object to create a relative reference to the Range object (e.g. Range(«C3»).Range(«B2») = D4).
If you are using Range(«A4».Cells(2,2)) to obtain a relative reference it is marginally faster to use Range(«A4»)(2,2).

Selecting Rows and Columns

Selecting all Non Blank

KeyStroke Equivalents

The macro recorder does not record any keystrokes you use to select a range of cells.
This line of code is equivalent to pressing (Ctrl + Shift + 8).

Multiple Selected Ranges

A Range object can comprise of multiple separate ranges.
Most properties and methods that refer to a range object take into account only the first rectangular area of the range.
You can use the Areas property to determine if a range contains multiple areas

Excel will actually allow multiple selections to be identical.
You can hold down the Ctrl and click cell «A1» five time.
The selection will have five identical areas.

GoTo Dialog

If Type is either xlCellTypeConstants or xlCellTypeFormulas, this argument is used to determine which types of cells to include in the result.
These values can be added together to return more than one type.
The default is to select all constants or formulas, no matter what the type.

Объекты Excel

Термин Объекты Excel (понимаемый в широком смысле, как объектная модель Excel) включает в себя элементы, из которых состоит любая рабочая книга Excel. Это, например, рабочие листы (Worksheets), строки (Rows), столбцы (Columns), диапазоны ячеек (Ranges) и сама рабочая книга Excel (Workbook) в том числе. Каждый объект Excel имеет набор свойств, которые являются его неотъемлемой частью.

Например, объект Worksheet (рабочий лист) имеет свойства Name (имя), Protection (защита), Visible (видимость), Scroll Area (область прокрутки) и так далее. Таким образом, если в процессе выполнения макроса требуется скрыть рабочий лист, то достаточно изменить свойство Visible этого листа.

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

Доступ ко всем основным объектам Excel может быть осуществлён (прямо или косвенно) через объект Workbooks, который является коллекцией всех открытых в данный момент рабочих книг. Каждая рабочая книга содержит объект Sheets – коллекция, которая включает в себя все рабочие листы и листы с диаграммами рабочей книги. Каждый объект Worksheet состоит из коллекции Rows – в неё входят все строки рабочего листа, и коллекции Columns – все столбцы рабочего листа, и так далее.

В следующей таблице перечислены некоторые наиболее часто используемые объекты Excel. Полный перечень объектов Excel VBA можно найти на сайте Microsoft Office Developer (на английском).

Из объекта Workbook можно получить доступ к объекту Sheets, который является коллекцией всех листов рабочей книги (рабочие листы и диаграммы), а также к объекту Worksheets, который представляет из себя коллекцию всех рабочих листов книги Excel.

Кроме этого Вы можете использовать ActiveSheet для доступа к активному в данный момент рабочему листу. Из объекта Worksheet можно получить доступ к объектам Rows и Columns, которые являются коллекцией объектов Range, ссылающихся на строки и столбцы рабочего листа. А также можно получить доступ к отдельной ячейке или к любому диапазону смежных ячеек на рабочем листе.

Доступ к диапазону, состоящему из единственной ячейки, может быть осуществлён через объект Worksheet при помощи свойства Cells, например, Worksheet.Cells(1,1).

Читать еще:  Vba excel размер шрифта

По-другому ссылку на диапазон можно записать, указав адреса начальной и конечной ячеек. Их можно записать через двоеточие или через запятую. Например, Worksheet.Range(“A1:B10”) или Worksheet.Range(“A1”, “B10”) или Worksheet.Range(Cells(1,1), Cells(10,2)).

Обратите внимание, если в адресе Range вторая ячейка не указана (например, Worksheet.Range(“A1”) или Worksheet.Range(Cells(1,1)), то будет выбран диапазон, состоящий из единственной ячейки.

Приведённая выше таблица показывает, как выполняется доступ к объектам Excel через родительские объекты. Например, ссылку на диапазон ячеек можно записать вот так:

Присваивание объекта переменной

В Excel VBA объект может быть присвоен переменной при помощи ключевого слова Set:

Активный объект

В любой момент времени в Excel есть активный объект Workbook – это рабочая книга, открытая в этот момент. Точно так же существует активный объект Worksheet, активный объект Range и так далее.

Сослаться на активный объект Workbook или Sheet в коде VBA можно как на ActiveWorkbook или ActiveSheet, а на активный объект Range – как на Selection.

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

Таким образом, чтобы сослаться на диапазон A1:B10 на активном рабочем листе активной книги, можно записать просто:

Смена активного объекта

Если в процессе выполнения программы требуется сделать активной другую рабочую книгу, другой рабочий лист, диапазон и так далее, то для этого нужно использовать методы Activate или Select вот таким образом:

Методы объектов, в том числе использованные только что методы Activate или Select, далее будут рассмотрены более подробно.

Свойства объектов

Каждый объект VBA имеет заданные для него свойства. Например, объект Workbook имеет свойства Name (имя), RevisionNumber (количество сохранений), Sheets (листы) и множество других. Чтобы получить доступ к свойствам объекта, нужно записать имя объекта, затем точку и далее имя свойства. Например, имя активной рабочей книги может быть доступно вот так: ActiveWorkbook.Name. Таким образом, чтобы присвоить переменной wbName имя активной рабочей книги, можно использовать вот такой код:

Ранее мы показали, как объект Workbook может быть использован для доступа к объекту Worksheet при помощи такой команды:

Это возможно потому, что коллекция Worksheets является свойством объекта Workbook.

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

Методы объектов

Объекты VBA имеют методы для выполнения определённых действий. Методы объекта – это процедуры, привязанные к объектам определённого типа. Например, объект Workbook имеет методы Activate, Close, Save и ещё множество других.

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

Как и другие процедуры, методы могут иметь аргументы, которые передаются методу при его вызове. Например, метод Close объекта Workbook имеет три необязательных аргумента, которые определяют, должна ли быть сохранена рабочая книга перед закрытием и тому подобное.

Чтобы передать методу аргументы, необходимо записать после вызова метода значения этих аргументов через запятую. Например, если нужно сохранить активную рабочую книгу как файл .csv с именем “Книга2”, то нужно вызвать метод SaveAs объекта Workbook и передать аргументу Filename значение Книга2, а аргументу FileFormat – значение xlCSV:

Чтобы сделать код более читаемым, при вызове метода можно использовать именованные аргументы. В этом случае сначала записывают имя аргумента, затем оператор присваивания “:=” и после него указывают значение. Таким образом, приведённый выше пример вызова метода SaveAs объекта Workbook можно записать по-другому:

В окне Object Browser редактора Visual Basic показан список всех доступных объектов, их свойств и методов. Чтобы открыть этот список, запустите редактор Visual Basic и нажмите F2.

Рассмотрим несколько примеров

Пример 1

Этот отрывок кода VBA может служить иллюстрацией использования цикла For Each. В данном случае мы обратимся к нему, чтобы продемонстрировать ссылки на объект Worksheets (который по умолчанию берётся из активной рабочей книги) и ссылки на каждый объект Worksheet отдельно. Обратите внимание, что для вывода на экран имени каждого рабочего листа использовано свойство Name объекта Worksheet.

Пример 2

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

В коде, приведённом ниже, для объекта Range вызывается метод PasteSpecial. Этот метод передаёт аргументу Paste значение xlPasteValues.

Пример 3

Следующий отрывок кода VBA показывает пример объекта (коллекции) Columns и демонстрирует, как доступ к нему осуществляется из объекта Worksheet. Кроме этого, Вы увидите, что, ссылаясь на ячейку или диапазон ячеек на активном рабочем листе, можно не указывать этот лист в ссылке. Вновь встречаем ключевое слово Set, при помощи которого объект Range присваивается переменной Col.

Данный код VBA показывает также пример доступа к свойству Value объекта Range и изменение его значения.

Читать еще:  Как открыть временный файл excel

VBA Select Cell

Excel VBA Select Cell

In VBA selection is done by a keyword method statement known as SELECT statement, select statement is used with the range property method to make any selection, now to select any particular cell we will still use the range property method with the select statement and the cell reference.

In excel we work with cells and range of the cell. In a regular worksheet, we can select the cell either by mouse or we reference the cell, as simple as that. However, in VBA, it is not that straight forward. For example, if we want to select the cell A1 using VBA, we cannot simply say “A1 cell”, rather we need to use the VBA RANGE object or CELLS property.

VBA coding is a language it has specifies a way of doing tasks. Selecting cells in one of those tasks which we need to script in the VBA language. In this article, we will show you how to select the cell using VBA code.

How to Select Excel Cell using VBA?

Example #1 – Select Cell through Macro Recorder

To start off the learning let’s start the process by recording the macro. Place a cursor on the cell other than the A1 cell.

I have selected the B3 cell as of now.

Now click on record macro button.

As soon as you click on that button you will see below a window. In this, you can give a new name or you can proceed with the default name by pressing the OK button.

Now we are in B3 cell, so select the cell A1.

Now stop the recording.

Click on Visual Basic to what it has recorded.

Now you will see the recording like this.

The only action we did while recording was we have selected the cell A1. So in VBA language to select any cell we need to use RANGE object, then specify the cell name in double-quotes and use the SELECT method to select the specified cell.

Example #2 – Select Cells using Range Object

Now by recording the macro, we get to know to select the cell we need to use the object RANGE. Now write on your own, type the word RANGE and open parenthesis.

Code:

Now it is asking what is the cell you want to refer in the range, type “A1”. Enter the cell address, close the bracket and type dot (.) to see all the properties and methods available with this cell.

Since we need to select the cell, type SELECT as the method.

Range(Cells(2, 3), Cells(5, 6)).Select

Доступ к ячейкам Листа Excel, ввод вывод данных в ячейки,

Оформление вида ячеек

Ввод вывод данных в ячейки Листа Excel осуществляется посредством свойств Cells (ячейки) и Range (диапазон ячеек). В свою очередь свойства Cells и Range являются объектами и содержат вложенные свойства такие, как Volue (значение), Interior (интерьер, оформление), formula (формула), Select (выбор) и другие.

Объект Cells и его свойство Cells можно рассматривать как базовый объект и основное свойство Листа Excel. Доступ к ячейке посредством свойства Cells осуществляется через индексы R (Row – строка) и C (Column – столбец). Для того чтобы выбрать некоторую ячейку достаточно в свойстве Cells указать RC адрес необходимой ячейки и выбрать свойство Select.

Выполнение указанной строки программы передаст фокус указателя мыши (выделит ячейку) на ячейку находящуюся на пересечении 2 – строки и 3 – го столбца активного листа Excel.

Свойство Range позволяет получить доступ к ячейке посредством символьного адреса.

Выполнение указанной строки программы передаст фокус указателя мыши на ячейку находящуюся на пересечении 2 – строки и 3 – го столбца активного листа Excel, т.е. будет выбрана ячейка [С2].

Обратите внимание на тот факт, что символьный адрес ячейки является строкой (текстом) и заключается в кавычки.

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

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

Range(Cells(2, 3), Cells(5, 6)).Select

Запись в ячейку некоторых данных можно осуществить как с использованием вложенных свойств Value, Value2 и Formula так и без их использования. Применение вложенных свойств несколько повышает быстродействие операций или обуславливется точностью вычислений. Например, для записи значения числа (e) в память ячейки с высокой точностью (12 байт) следует применить свойство Value2.

Range(“A1”).Value2 = Exp(1) [2,718281828]

Обратите внимание на тот факт, что отображение значения числа (e) вычисленного с обычной точностью будет иметь то же количество знаков, что и отображение значения вычисленного с обычной (8 байт) точностью. Однако в оперативной памяти ячейки, значение вычисленное с высокой точностью будет содержать больше разрядов после запятой на 4 байта. Одинаковое представление числа в ячейке определяется форматом вывода значения.

Cells(2,1).Volue = Exp(1) [2,718281828]

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

Приведенная выше программная строка (свойство Formula) передает управление на связанное с ячейкой поле ввода формул (Parser — вычислитель). Таким образом, запись формулы в программе выглядит эквивалентно вводу формул в Excel. Так как любое поле ввода имеет тип “строка”, то запись выражения необходимо взять в кавычки.

Читать еще:  Персентиль в excel

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

Range(“A3”) = Range(“A1”) + Cells(2,1)

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

Помимо ввода и вывода данных в ячейки можно программно оформить внешний вид ячейки и диапазона ячеек. Оформление внешнего вида ячеек осуществляется посредством свойства Interior (интерьер) и вложенных в него свойств Color (цвет), ColorIndex (индекс цвета), Pattern (узор) и др. Указанные свойства имеют предопределенные значения. Например, свойству Color можно присвоить значение цвета посредством символического имени, соответствующего двоичному коду в шестнадцатеричном представлении:

vbBlack &H000000 Черный

vbRed &H0000FF Красный

vbGreen &H00FF00 Зеленый

vbYellow &H00FFFF Желтый

vbBlue &HFF0000 Синий

vbMagenta &HFF00FF Розовый

vbCyan &HFFFF00 Голубой

vbWhite &HFFFFFF Белый

Также можно непосредственно задать значение цвета в шестнадцатеричном коде.

Особенностью применения свойства Interior в свойстве Cells для ранних версий Excel, например Office97, является обязательный предварительный выбор ячейки.

Cells(1, 1).Interior.Color = &HFF0000

Cells(1, 2).Interior.Color = vbGreen

Цвет ячейки (диапазона ячеек) можно определить через индекс палитры цветов. Для этого достаточно воспользоваться свойством ColorIndex. Палитра цветов ячеек содержит 40 значений, которые представлены индексами в диапазоне [0-39].

Cells(1, 1).Interior.ColorIndex = 3 ‘ Красный

Range(«A2»).Interior.ColorIndex = 5 ‘ Синий

Определить цвет ячейки (диапазона ячеек) можно также путем присвоения свойству Color десятичного значения.

Cells(1, 1).Interior.Color = 255 ‘красный

Range(«a2»).Interior.Color = 16711680 ‘синий

Ячейки (диапазон ячеек) можно залить узором. В VBA предопределены 20 видов узоров, а именно: xlPatternAutomatic, xlPatternChecker, xlPatternCrissCross, xlPatternDown, xlPatternGray16, xlPatternGray25, xlPatternGray50, xlPatternGray75, xlPatternGray8, xlPatternGrid, xlPatternHorizontal, xlPatternLightDown, xlPatternLightHorizontal, xlPatternLightUp, xlPatternLightVertical, xlPatternNone, xlPatternSemiGray75, xlPatternSolid, xlPatternUp, xlPatternVertical.

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

Range(«A6»).Font.Italic = True

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

With Range(«A6»).Font

.Name = «Arial»: .Color = vbBlue: .Size = 12

VBA Excel. Переменная диапазона ячеек (As Range)

Присвоение диапазона ячеек объектной переменной в VBA Excel. Адресация ячеек в переменной диапазона и работа с ними. Определение размера диапазона. Примеры.

Присвоение диапазона ячеек переменной

Чтобы переменной присвоить диапазон ячеек, она должна быть объявлена как Variant, Object или Range:

Чтобы было понятнее, для чего переменная создана, объявляйте ее как Range.

Присваивается переменной диапазон ячеек с помощью оператора Set:

В выражении Range(Cells(3, 4), Cells(26, 18)) вместо чисел можно использовать переменные.

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

Адресация ячеек в диапазоне

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

Индексация ячеек в присвоенном диапазоне осуществляется слева направо и сверху вниз, например, для диапазона размерностью 5х5:

Индексация строк и столбцов начинается с левой верхней ячейки. В диапазоне этого примера содержится 5 строк и 5 столбцов. На пересечении 2 строки и 4 столбца находится ячейка с индексом 9. Обратиться к ней можно так:

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

обращение к первой строке присвоенного диапазона размерностью 5х5:

и обращение к первому столбцу присвоенного диапазона размерностью 5х5:

Работа с диапазоном в переменной

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

равнозначны. В обоих случаях информационное сообщение MsgBox выведет значение ячейки с индексом 6.

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

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

Пример 1 – работа со значениями

Скопируйте процедуру в программный модуль и запустите ее выполнение.

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

Пример 2 – работа с форматами

Продолжаем работу с тем же диапазоном рабочего листа «C6:E8»:

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

Пример 3 – копирование и вставка диапазона из переменной

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

Скопировать и вставить диапазон полностью со значениями и форматами можно при помощи метода Copy, указав место вставки (ячейку) на рабочем листе.

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

Ссылка на основную публикацию
Adblock
detector