Листинг 2.16. Ввод данных в ячейки
Sub SetCellData()
' Заполнение значениями ячеек А3 и В4
Range(«A3») = «Данные для ячейки A3»
Range(«B4») = «Данные для ячейки B4»
End Sub
В результате выполнения данного макроса в ячейку A3 будет введено значение
Данные для ячейки A3, а в ячейку В4 – Данные для ячейки В4.
С помощью похожего макроса (листинг 2.17) можно выполнять вычисления с использованием формул.
Листинг 2.17. Ввод данных с использованием формул
Sub SetCellFormula()
' Запись в ячейку А6 формулы «=A5+B5»
Range(«A6») = «=A5+B5»
End Sub
В результате выполнения данного макроса в ячейке Аб отобразится сумма ячеек А5 и В5. Если же в приведенном макросе вместо строки Range («Аб») = «=А5+В5» ввести, например, Range («А2:А5») = 2, то все ячейки диапазона А2:А5 будут заполнены значением 2.
При вводе в ячейку дробных значений Excel может интерпретировать их в дату. Это обусловлено тем, что в некоторых случаях Excel не знает, что нужно ввести пользователю: дату или дробное значение. Например, при попытке ввести в ячейку дробь 2/5 после нажатия Enter в данной ячейке отобразится 02.май, а при вводе дроби 7/92 появится значение июл.92. Чтобы обойти эту особенность, достаточно при вводе дроби набрать перед ней символ 0, например 0 2/5. Теперь Excel поймет пользователя правильно и в ячейке после нажатия клавиши Enter отобразится значение 2/5.
Сбор данных из разных ячеек
Иногда возникает необходимость объединить содержимое разных ячеек рабочего листа. Для выполнения объединения необходимо воспользоваться оператором &. Чтобы лучше понять суть данной операции, рассмотрим ее на конкретном примере.
Допустим, имеются два списка: в одном содержатся должности сотрудников, в другом – их фамилии. Нам нужно объединить эти списки. В первом списке в ячейке А1 содержится должность Бухгалтер, во втором списке в ячейке В1 – фамилия Рублев. Объединим эти значения в ячейке С1 (все данные в примере условны).
Для этого в ячейке С1 необходимо ввести следующую формулу: =А1&" "&В1. После нажатия Enter в ней отобразится значение Бухгалтер Рублев.
При объединении ячеек можно ввести дополнительную информацию – соответствующий текст набирается в формуле между кавычками. Например, если в нашем примере для ячейки С1 создать следующую формулу: =А1&" по зарплате "&В1, то после ее ввода в ячейке отобразится значение Бухгалтер по зарплате Рублев.
Примечание
Если между кавычками дополнительный текст не вводится, то они обязательно должны быть разделены пробелом.
Если в ячейках А2 и В2 содержатся значения соответственно Экономист и Сидоров, то для объединения их в ячейке С2 можно нажать сочетание клавиш Ctrl+D. При этом созданная в ячейке С1 формула скопируется с учетом относительных адресов и в ячейке С2 отобразится значение Экономист по зарплате Сидоров.
Выделение диапазона над текущей ячейкой
Предположим, нам необходимо выделить диапазон с данными, расположенный непосредственно над текущей ячейкой. Можно, конечно, выполнить это стандартным способом (например, с помощью мыши). Но в некоторых случаях для этого целесообразнее использовать макрос, код которого приведен в листинге 2.18.
Листинг 2.18. Выделение диапазона над текущей ячейкой
Sub SelectCellRange()
Dim strSelTop As String, strSelBottom As String
' Получение адресов нижней и верхней ячеек диапазона для выделения
strSelBottom = ActiveCell.Address
strSelTop = Cells(1, ActiveCell.Column).Address
' Выделяем все ячейки выше текущей (вместе с текущей ячейкой)
Range(strSelTop & ":" & strSelBottom).Select
End Sub
После выполнения макроса будет выделен диапазон, расположенный над текущей ячейкой (вместе с текущей ячейкой).
Поиск ближайшей пустой ячейки столбца
Если таблица заполнена большим количеством данных, то иногда бывает необходимо быстро найти ближайшую ячейку столбца, не содержащую никаких данных. Поскольку выполнение данной операции вручную – процесс слишком трудоемкий, целесообразно воспользоваться макросом, код которого приведен в листинге 2.19.
Листинг 2.19. Поиск ближайшей пустой ячейки столбца
Sub FindEmptyCell()
' Поиск ближайшей пустой ячейки в текущем столбце
Do While Not IsEmpty(ActiveCell.Value)
ActiveCell.Offset(1, 0).Select
Loop
End Sub
После выполнения данного макроса курсор быстро «пробежит» по всем ячейкам текущего столбца, остановившись на ближайшей пустой ячейке. При этом необходимо учитывать, что направление поиска – сверху вниз, то есть ячейки, расположенные над начальным положением курсора, обнаружены не будут, поэтому перед запуском макроса следует установить курсор в верхнюю ячейку столбца.
Читать дальше
Конец ознакомительного отрывка
Купить книгу