Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Интересное:
Уполаживание и террасирование склонов: Если глубина оврага более 5 м необходимо устройство берм. Варианты использования оврагов для градостроительных целей...
Принципы управления денежными потоками: одним из методов контроля за состоянием денежной наличности является...
Распространение рака на другие отдаленные от желудка органы: Характерных симптомов рака желудка не существует. Выраженные симптомы появляются, когда опухоль...
Дисциплины:
2020-12-08 | 122 |
5.00
из
|
Заказать работу |
|
|
Выделить вниз до первой или последней заполненной ячейки (равносильно нажатию Ctrl+Shift+Down)
Sub CtrlShiftDown() Range(ActiveCell, ActiveCell.End(xlDown)).Select End SubВыделить вверх до первой или последней заполненной ячейки (равносильно нажатию Ctrl+Shift+Up)
Sub CtrlShiftUp() Range(ActiveCell, ActiveCell.End(xlUp)).Select End SubВыделить вправо до первой или последней заполненной ячейки (равносильно нажатию Ctrl+Shift+Right)
Sub CtrlShiftRight() Range(ActiveCell, ActiveCell.End(xlToRight)).Select End SubВыделить влево до первой или последней заполненной ячейки (равносильно нажатию Ctrl+Shift+Left)
Sub CtrlShiftLeft() Range(ActiveCell, ActiveCell.End(xlToLeft)).Select End SubВыделить текущую область (выделяется диапазон неразрывно заполненных ячеек - равносильно нажатию кнопок Ctrl+Shift+*)
Sub CtrlShiftUmn() ActiveCell.CurrentRegion.Select End SubВыделить активную область (происходит выделение всего заполненного диапазона Ctrl+Shift+Home, End, Home)
Sub CtrlShiftHome() Range(Range("A1"), ActiveCell.SpecialCells(xlLastCell)).Select End SubВыделить смежные (заполненные прилегающие к активной ячейке) ячейки в столбце с активной ячейкой
Sub SelectActiveColumn() Dim TopCell As Range Dim BottomCell As Range If IsEmpty(ActiveCell) Then Exit Sub On Error Resume Next If IsEmpty(ActiveCell.Offset(-1, 0)) Then Set TopCell = _ ActiveCell Else Set TopCell = ActiveCell.End(xlUp) If IsEmpty(ActiveCell.Offset(1, 0)) Then Set BottomCell = _ ActiveCell Else Set BottomCell = ActiveCell.End(xlDown) Range(TopCell, BottomCell).Select End SubВыделить смежные ячейки в строке с активной ячейкой
Sub SelectActiveRow() Dim LeftCell As Range Dim RightCell As Range If IsEmpty(ActiveCell) Then Exit Sub On Error Resume Next If IsEmpty(ActiveCell.Offset(0, -1)) Then Set LeftCell = _ ActiveCell Else Set LeftCell = ActiveCell.End(xlToLeft) If IsEmpty(ActiveCell.Offset(0, 1)) Then Set RightCell = _ ActiveCell Else Set RightCell = ActiveCell.End(xlToRight) Range(LeftCell, RightCell).Select End SubВыделить весь активный столбец
|
Выделить всю активную строку
Sub SelectEntireRow() Selection.EntireRow.Select End SubВыделить рабочий лист
Sub SelectEntireSheet() Cells.Select End SubВыделить следующую пустую ячейку снизу
Sub CellNextDown() ActiveCell.Offset(1, 0).Select Do While Not IsEmpty(ActiveCell) ActiveCell.Offset(1, 0).Select Loop End SubВыделить следующую пустую ячейку справа
Sub CellNextRight() ActiveCell.Offset(0, 1).Select Do While Not IsEmpty(ActiveCell) ActiveCell.Offset(0, 1).Select Loop End SubВыделение от первой непустой до последней непустой ячеек в строке
Sub SelectFirstToLastInRow() Dim LeftCell As Range Dim RightCell As Range Set LeftCell = Cells(ActiveCell.Row, 1) Set RightCell = Cells(ActiveCell.Row, 256) If IsEmpty(LeftCell) Then Set LeftCell = LeftCell.End(xlToRight) If IsEmpty(RightCell) Then Set RightCell = RightCell.End(xlToLeft) If LeftCell.Column = 256 And RightCell.Column = 1 Then ActiveCell. _ Select Else Range(LeftCell, RightCell).Select End SubВыделение от первой непустой до последней непустой ячеек в столбце
Sub SelectFirstToLastInColumn() Dim TopCell As Range Dim BottomCell As Range Set TopCell = Cells(1, ActiveCell.Column) Set BottomCell = Cells(16384, ActiveCell.Column) If IsEmpty(TopCell) Then Set TopCell = TopCell.End(xlDown) If IsEmpty(BottomCell) Then Set BottomCell = BottomCell.End(xlUp) If TopCell.Row = 16384 And BottomCell.Row = 1 Then ActiveCell. _ Select Else Range(TopCell, BottomCell).Select End SubОтносительные формулы
Некоторые наверно обращали внимание на то, что при записи макроса вводимые формулы имеют непонятый вид. Тут хотелось бы развеять все непонятки и показать, что в этих формулах нет ничего сложного, и в них всё логично, хоть они и выглядят по другому. Рассмотрим простую формулу сложения двух ячеек.
Sub Primer() Cells(4, 5) = "=RC[-3]+RC[-1]" Cells(5, 5) = "=R[-3]C+R[-1]C" End SubR - это строка, от слова Row;
C - это столбец, от слова Column;
В квадратных скобках указано на какое количество столбцов или строк необходимо переместится от заданной ячейки. Принцип отчёта такой же как и в команде рассмотренной самой первой в этом уроке - Offset. И как видно на примере, значения в квадратных скобках могут быть как отрицательные так и положительные.
|
В первом примере показано, что сумма в ячейке Cells(4, 5) равна сумме двух ячеек, одна из которых находится на третьем столбце влево от заданной ячейки, а другая на один столбец влево от заданной ячейки, при этом строка остаётся неизменной. На втором примере всё аналогично, только тут уже столбец остаётся неизменным а меняются строки.
Столбцы и строки
В этом пункте я расскажу как правильно работать со строками и столбцами. Каким образом можно выделить одну строку, две или несколько строк, и тоже самое со столбцами.
Для того чтобы оперировть какой-то одной строкой или столбцом, можно воспользоваться следующей записью:
Rows(6).Select 'Строка Columns(6).Select 'СтолбецЭто самая простая запись не требующая никаких кавычек, Вы просто указываете номер строки или столбца и дальше делаете с ней что угодно, например закрасить в синий цвет:
Rows(6).Interior.ColorIndex = 5 'Строка Columns(6).Interior.ColorIndex = 5 'СтолбецЕсли Вам необходимо выделить более одной строки или столбца, то можно воспользоваться следующей записью:
Rows("2:2").Select 'Строка Columns("B:B").Select 'СтолбецТакая запись выделяет только одну строку и только один столбец.
А вот если записать так:
то мы сможем обработать целый диапазон строк и столбцов, но он сплошной. Если мы хотим обработать разные строки, например 1, 4, 6-8, и разные столбцы, например B, D, F-G, то запись необходимо произвести следующим образом:
Range("1:1,4:4,6:8").Select 'Строка Range("B:B,D:D,F:G").Select 'СтолбецПри такой записи у нас получается уже диапазон. И умногих возник вопрос: "Каким образом можно одновременно выделить и строки и столбцы?". Пример ниже выделяет одновременно 8 строчку и столбец D:
Range("D:D,8:8").SelectА этот пример выделяет сразу несколько строк и столбцов одновременно:
Range("B:B,D:D,3:6,9:9").SelectError. Обработка ошибок
Ну вот и пришёл тот долгожданный день, когда Вы задумались об обработке ошибок. Хорошо когда в программах работаете только Вы, и Вы знаете куда в ней можно нажать, а куда не стоит потому что случится ошибка. Но если Вы пишите программу, в которой работает несколько человек помимо Вас и они понятия не имеют что в ней можно и что нельзя, и они обязательно будут тыкать туда куда нельзя, и эти ошибки Вас просто погубят, потому что все будут грешить на вашу программу.
Конечно же в любой программе необходимо предусмотреть "защиту от дурака", но иногда "дурак" превосходит все ожидания. Если честно, я редко пользуюсь командами для обработки ошибок. Стараюсь предусматривать все возможные варианты действий пользователя, но это иногда заставляет написать такую огромную защиту, что сама программа того не стоит. Вообщем приступим.
|
Скачать пример
Искусственно создадим ошибку. Самый простой способ - взять любое число и поделить его на ноль. Напишем простенькую программу и на ней будем рассматривать различные способы обхода ошибки.
Sub primer1() a = 10 b = InputBox("Введите число отличное от 0", "Ввод данных", "0") c = a / b MsgBox "Результат: " & a & "/" & b & "=" & c, vbInformation, "Ответ" End Sub
|
|
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!