Excel область в код

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

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

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

Dim myRange1 As Variant

Dim myRange2 As Object

Dim myRange3 As Range

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

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

Set myRange1 = Range(«B5:E16»)

Set myRange2 = Range(Cells(3, 4), Cells(26, 18))

Set myRange3 = Selection

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

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

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

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

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

1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25

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

‘обращение по индексам строки и столбца

myRange.Cells(2, 4)

‘обращение по индексу ячейки

myRange.Cells(9)

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

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

myRange.Range(«A1:E1»)

‘или

myRange.Range(Cells(1, 1), Cells(1, 5))

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

myRange.Range(«A1:A5»)

‘или

myRange.Range(Cells(1, 1), Cells(5, 1))

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

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

MsgBox myRange.Cells(6)

MsgBox myRange.Cells(6).Value

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

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

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

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

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

Sub Test1()

‘Объявляем переменную

Dim myRange As Range

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

Set myRange = Range(«C6:E8»)

‘Заполняем первую строку

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

myRange.Cells(1, 1) = 5

‘Присваиваем значение второй ячейке

myRange.Cells(1, 2) = 10

‘Присваиваем третьей ячейке

‘значение выражения

myRange.Cells(1, 3) = myRange.Cells(1, 1) _

* myRange.Cells(1, 2)

‘Заполняем вторую строку

myRange.Cells(2, 1) = 20

myRange.Cells(2, 2) = 25

myRange.Cells(2, 3) = myRange.Cells(2, 1) _

+ myRange.Cells(2, 2)

‘Заполняем третью строку

myRange.Cells(3, 1) = «VBA»

myRange.Cells(3, 2) = «Excel»

myRange.Cells(3, 3) = myRange.Cells(3, 1) _

& » « & myRange.Cells(3, 2)

End Sub

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

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

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

Sub Test2()

‘Объявляем переменную

Dim myRange As Range

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

Set myRange = Range(«C6:E8»)

‘Первую строку выделяем жирным шрифтом

myRange.Range(«A1:C1»).Font.Bold = True

‘Вторую строку выделяем фоном

myRange.Range(«A2:C2»).Interior.Color = vbGreen

‘Третьей строке добавляем границы

myRange.Range(«A3:C3»).Borders.LineStyle = True

End Sub

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

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

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

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

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

Sub Test3()

‘Объявляем переменную

Dim myRange As Range

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

Set myRange = Range(«C6:E8»)

‘Присваиваем ячейкам рабочего листа

‘значения ячеек переменной диапазона

Range(«A1:C3») = myRange.Value

MsgBox «Пауза»

‘Копирование диапазона переменной

‘и вставка его на рабочий лист

‘с указанием начальной ячейки

myRange.Copy Range(«E1»)

MsgBox «Пауза»

‘Копируем и вставляем часть

‘диапазона из переменной

myRange.Range(«A2:C2»).Copy Range(«E11»)

End Sub

Информационное окно MsgBox добавлено, чтобы вы могли увидеть работу процедуры поэтапно, если решите проверить ее в своей книге Excel.

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

При получении диапазона с помощью метода Application.InputBox и присвоении его переменной диапазона, бывает полезно узнать его размерность. Это можно сделать следующим образом:

Sub Test4()

‘Объявляем переменную

Dim myRange As Range

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

Set myRange = Application.InputBox(«Выберите диапазон ячеек:», , , , , , , 8)

‘Узнаем количество строк и столбцов

MsgBox «Количество строк = « & myRange.Rows.Count _

& vbNewLine & «Количество столбцов = « & myRange.Columns.Count

End Sub

Запустите процедуру, выберите на рабочем листе Excel любой диапазон и нажмите кнопку «OK». Информационное сообщение выведет количество строк и столбцов в диапазоне, присвоенном переменной myRange.

Макрос предназначен для экспорта выделенного диапазона ячеек книги Excel в код HTML.

Результат (HTML код таблицы) помещается в буфер обмена.

Первая строка выделенного диапазона ячеек считается заголовком таблицы (обрамляется тегами <th> вместо <td>)

Например, мы имеем изначально такую таблицу Excel, где мы выделили диапазон ячеек A1:D9

исходная таблица Excel для экспорта в HTML

Запускаем макрос — и в буфере обмена Windows появляется следующий HTML-код:

результат экспорта таблицы в HTML

После вставки этого кода на веб-страницу, видим следующее:

ФИО Правильный результат склонения Новая формула — DativeCase Совпадение
БАРАШ Лев Юрьевич БАРАШУ Льву Юрьевичу Барашу Льву Юрьевичу ИСТИНА
Абраамян Оганес Дереникович Абраамяну Оганесу Дерениковичу Абраамяну Оганесу Дерениковичу ИСТИНА
Абрамян Артур Александрович Абрамяну Артуру Александровичу Абрамяну Артуру Александровичу ИСТИНА
Абрамян Назар Вачаганович Абрамяну Назару Вачагановичу Абрамяну Назару Вачагановичу ИСТИНА
Абросимов Антон Владимирович Абросимову Антону Владимировичу Абросимову Антону Владимировичу ИСТИНА
АГАФОНОВ Иван Николаевич АГАФОНОВУ Ивану Николаевичу Агафонову Ивану Николаевичу ИСТИНА
Агафонов Константин Викторович Агафонову Константину Викторовичу Агафонову Константину Викторовичу ИСТИНА
Агеев Антон Сергеевич Агееву Антону Сергеевичу Агееву Антону Сергеевичу ИСТИНА

Собственно, сам код макроса для экспорта таблицы Excel в HTML:

Sub ExportHTML()
    ' макрос для экспорта выделенного диапазона ячеек в HTML
    On Error Resume Next
    Selection.Areas(1).Select    ' на случай выделения несвязанных диапазонов

    iFirstLine = Selection.Row
    iFirstCol = Selection.Column
    iLastLine = iFirstLine + Selection.Rows.Count - 1
    iLastCol = iFirstCol + Selection.Columns.Count - 1
 
    'HTML классы для таблицы и четного ряда данных
    sTableClass = "ExcelTable"
    sOddRowClass = "odd"
 
    sOutput = "<div><table class='" & sTableClass & "' border=1 width=500px align=center>"    ' Начинаем таблицу
    'sOutput = sOutput & "<caption>" & Cells(iFirstLine, iFirstCol).Text & "</caption>"

    For k = iFirstLine To iLastLine    ' Обрабатываем Excel таблицу
        If (k  2 <> k / 2) Then    'проверяем на четность
            sLine = "<tr class ='" & sOddRowClass & "'>"
        Else
            sLine = "<tr>"
        End If
 
        iCountColspan = 0    'счетчик объединенных ячеек
        For j = iFirstCol To iLastCol
            'Проверяем, не объединена ли эта ячейка с соседними.
            If Cells(k, j).MergeCells = True Then
                'Получаем число объединенных ячеек
                iCountColspan = Cells(k, j).MergeArea.Count
            Else
                iCountColspan = 0
            End If
            Set oCurrentCell = ActiveSheet.Cells(k, j)
            sLine = sLine & "<td"
 
            'Проверяем, нужно ли вставлять код объединения ячейки с соседними
            If iCountColspan > 1 Then
                sLine = sLine & " colspan=" & iCountColspan
                j = j + iCountColspan - 1    'пропускаем ячейки
                iCountColspan = 0
            End If
 
            'Если по центру
            If oCurrentCell.HorizontalAlignment = -4108 Then sLine = sLine & " style='text-align: center;'"
            sLine = sLine & ">"
 
            'Если пусто, прописываем &nbsp;
            If oCurrentCell.Text <> "" Then sValue = oCurrentCell.Text Else sValue = "&nbsp;"
            'Если жирный
            If oCurrentCell.Font.Bold = True Then sValue = "<b>" & sValue & "</b>"
            'Если курсив
            If oCurrentCell.Font.Italic = True Then sValue = "<i>" & sValue & "</i>"
 
            sLine = sLine & sValue & "</td>"
            If k = iFirstLine Then sLine = Replace(sLine, "<td", "<th")
 
        Next j
        sOutput = sOutput & sLine & "</tr>"
    Next k
 
    sOutput = sOutput & "</table></div>"  'Заканчиваем таблицу

    ' Копируем полученный HTML в буфер обмена
    With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
        .SetText sOutput: .PutInClipboard
    End With
End Sub

PS: За основу взят код из блога Максима Тарлюн

Поздравляю! Вы добрались до конца первой недели марафона 30 функций Excel за 30 дней, изучив вчера функцию FIXED (ФИКСИРОВАННЫЙ). Сегодня мы немного расслабимся и займёмся функцией, у которой не так много примеров использования – это функция CODE (КОДСИМВ). Она может работать вместе с другими функциями в длинных и сложных формулах, но сегодня мы сосредоточимся на том, что она может делать самостоятельно в простейших случаях.

Итак, давайте разберёмся со справочной информацией по функции CODE (КОДСИМВ) и рассмотрим варианты её применения в Excel. Если у Вас есть подсказки или примеры использования – делитесь ими в комментариях.

Содержание

  1. Функция 07: CODE (КОДСИМВ)
  2. Как можно использовать функцию CODE (КОДСИМВ)?
  3. Синтаксис CODE (КОДСИМВ)
  4. Ловушки CODE (КОДСИМВ)
  5. Пример 1: Получаем код скрытого символа
  6. Пример 2: Находим код символа
  7. Ввод на цифровой клавиатуре
  8. Ввод на клавиатуре без цифрового блока

Функция 07: CODE (КОДСИМВ)

Функция CODE (КОДСИМВ) возвращает численный код первого символа текстовой строки. Для Windows это будет код из таблицы ANSI, а для Macintosh — код из таблицы символов Macintosh.

Функция КОДСИМВ в Excel

Как можно использовать функцию CODE (КОДСИМВ)?

Функция CODE (КОДСИМВ) позволяет найти ответ на следующие вопросы:

  • Какой скрытый символ таится в конце импортированного текста?
  • Как я могу ввести специальный символ в ячейку?

Синтаксис CODE (КОДСИМВ)

Функция CODE (КОДСИМВ) имеет такой синтаксис:

CODE(text)
КОДСИМВ(текст)

  • text (текст) – это текстовая строка, код первого символа которой Вы хотите получить.

Ловушки CODE (КОДСИМВ)

Результаты, возвращаемые функцией в разных операционных системах, могут отличаться. Коды символов ASCII (с 32 по 126) в большинстве своём соответствуют символам на Вашей клавиатуре. Однако, символы для более высоких номеров (от 129 до 254) могут различаться.

Пример 1: Получаем код скрытого символа

Текст, копируемый с веб-сайта, иногда содержит скрытые символы. Функция CODE (КОДСИМВ) может быть использована для того, чтобы определить, что это за символы. Например, в ячейке B3 находится текстовая строка, в которой видно слово «test» – всего 4 символа. В ячейке С3 функция LEN (ДЛСТР) подсчитала, что в ячейке B3 находится 5 символов.

Чтобы определить код последнего символа, Вы можете использовать функцию RIGHT (ПРАВСИМВ), чтобы извлечь последний символ строки. Далее применить функцию CODE (КОДСИМВ), чтобы получить код этого символа.

=CODE(RIGHT(B3,1))
=КОДСИМВ(ПРАВСИМВ(B3;1))

Функция КОДСИМВ в Excel

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

Пример 2: Находим код символа

Чтобы вставить специальные символы в таблицу Excel, Вы можете использовать команду Symbol (Символы) на вкладке Insert (Вставка). Например, Вы можете вставить символ градуса ° или символ авторского права ©.

После того, как вставлен символ, можно определить его код, используя функцию CODE (КОДСИМВ):

=IF(C3="","",CODE(RIGHT(C3,1)))
=ЕСЛИ(C3="";"";КОДСИМВ(ПРАВСИМВ(C3;1)))

Функция КОДСИМВ в Excel

Теперь, когда Вам известен код, Вы можете вставить символ, используя цифровую клавиатуру (только не те цифры, которые над буквенной клавиатурой). Код символа авторского права — 169. Проделайте следующие шаги, чтобы ввести этот символ в ячейку.

Ввод на цифровой клавиатуре

  1. Нажмите клавишу Alt.
  2. На цифровой клавиатуре наберите 4-значный код (если необходимо, добавьте недостающие нули): 0169.
  3. Отпустите клавишу Alt, чтобы символ появился в ячейке. При необходимости нажмите Enter.

Ввод на клавиатуре без цифрового блока

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

  1. Нажать клавишу Fn и клавишу F4, чтобы включить NumLock.
  2. Найти цифровую клавиатуру, расположенную на клавишах буквенной клавиатуры. На моей клавиатуре: J=1, K=2 и так далее.
  3. Нажать Alt+Fn и, используя цифровую клавиатуру, ввести 4-значный код символа (добавляя нули, если это необходимо): 0169.
  4. Отпустить Alt+Fn, чтобы символ авторского права появился в ячейке. При необходимости нажать Enter.
  5. Когда все сделано, снова нажать Fn+F4, чтобы отключить NumLock.

Оцените качество статьи. Нам важно ваше мнение:

QR код

СОЗДАТЬ_QR (функция СОЗДАТЬ_QR)

Функция СОЗДАТЬ_QR – создает Qr коды в выбранной ячейке Excel

Синтаксис

= СОЗДАТЬ_QR (Текст; Размер; Ширина_рамки; Цвет_фона; Цвет_кода;Коррекция_ошибок;Кодировка)

Инструмент надстройки Excel Tools VBA создание Qr кодов

Инструмент надстройки Excel Tools VBA создание Qr кодов

Окно настрое QR кода, перед вставкой, позволяет настроить следующие параметры:

  • текст для преобразования в QR код, выбрать из ячейки или вести произвольный текст
  • задать размер, в пикселях
  • задать размер рамки вокруг кода, в пикселях
  • выбрать цвет фона и самого кода, реализован выбор из палитры цветов или скопировать цвет заливки ячейки Excel
  • задать степень корректировки ошибок
  • задать тип кодировки

Окно выбора настроек для создания Qr кода

Окно выбора настроек для создания Qr кода

Аргумент функции СОЗДАТЬ_QR :

Аргумент Описание
Текст-обязательный Текстовая строка для преобразования в QR код
Размер Размер QR кода в пикселях от 150 до 1000, по умолчанию 200
Ширина рамки Ширина в пикселях пустой зоны вокруг QR кода, от 0 до 10 пикселей, по умолчанию 5
Цвет фона Цвет фона по умолчанию белый
Цвет QR кода Цвет QR по умолчанию черный
Коррекция ошибок Степень повреждения QR кода для его считывания
Кодировка Выбор типа кодировки UTF-8 или ISO-8859-1, по умолчанию UTF-8

Microsoft Excel КОД (функция КОД) возвращает числовой код символа или первого символа в заданной ячейке текстовой строки.


Синтаксис

=CODE (text)


аргументы

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


Возвращаемое значение

Вернуть числовой код символа.


Функция Примечание

1. #VALUE! Ошибка возникает, если текстовый аргумент пуст.

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

 Операционная среда  Набор символов
Макинтош Набор символов Macintosh
Windows ANSI

Примеры

В приведенном ниже примере показано, как использовать функцию КОД в Excel.

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

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

Tips:

1. Вы можете заключить текст в формуле напрямую в двойные кавычки.
=CODE(«Office»)

2. Функции UPPER и LOWER могут помочь при возврате числового кода для символа с учетом регистра.
=CODE(LOWER(A1))
=CODE(UPPER(A1))


Лучшие инструменты для работы в офисе

Kutools for Excel — Помогает вам выделиться из толпы

Хотите быстро и качественно выполнять свою повседневную работу? Kutools for Excel предлагает 300 мощных расширенных функций (объединение книг, суммирование по цвету, разделение содержимого ячеек, преобразование даты и т. д.) и экономит для вас 80 % времени.

  • Разработан для 1500 рабочих сценариев, помогает решить 80% проблем с Excel.
  • Уменьшите количество нажатий на клавиатуру и мышь каждый день, избавьтесь от усталости глаз и рук.
  • Станьте экспертом по Excel за 3 минуты. Больше не нужно запоминать какие-либо болезненные формулы и коды VBA.
  • 30-дневная неограниченная бесплатная пробная версия. 60-дневная гарантия возврата денег. Бесплатное обновление и поддержка 2 года.

Лента Excel (с Kutools for Excel установлены)


Вкладка Office — включение чтения и редактирования с вкладками в Microsoft Office (включая Excel)

  • Одна секунда для переключения между десятками открытых документов!
  • Уменьшите количество щелчков мышью на сотни каждый день, попрощайтесь с рукой мыши.
  • Повышает вашу продуктивность на 50% при просмотре и редактировании нескольких документов.
  • Добавляет эффективные вкладки в Office (включая Excel), точно так же, как Chrome, Firefox и новый Internet Explorer.

Снимок экрана Excel (с установленной вкладкой Office)

Комментарии (0)


Оценок пока нет. Оцените первым!

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