Vba excel значение в объединенных ячейках

ViktorB3

0 / 0 / 0

Регистрация: 07.07.2017

Сообщений: 32

1

Excel

04.06.2019, 15:34. Показов 8414. Ответов 4

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Всем Доброго времени суток! Суть вопроса такова: Есть объединенная ячейка (R2C2). Нужно пройтись по всем строкам, входящие в эту ячейку, т.е. начинаем со строки 2 и до 20. При этом каждый раз необходимо проверять значение объединенной ячейки. Пробовал вот так:

Visual Basic
1
2
3
4
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Cells(Target.Row, 2).Select
    MsgBox ActiveCell
End Sub

Но т.к. таких объединенных ячеек много, экран «некрасиво моргает» при выделении каждой ячейки. Может есть какой-нибудь способ лучше для выполнения такой задачи?
Заранее Всем Спасибо за помощь

Миниатюры

Как получить значение объединенной ячейки Excel
 



0



3827 / 2254 / 751

Регистрация: 02.11.2012

Сообщений: 5,930

04.06.2019, 15:41

2

опишите для чего в общем эта манипуляция.



0



0 / 0 / 0

Регистрация: 07.07.2017

Сообщений: 32

04.06.2019, 15:49

 [ТС]

3

Мне необходимо знать к какой объединенной ячейке относится строка выбранной мною ячейки. Потом значение объединенной ячейки используется для выбора переменной. (Но эт я уже слишком далеко пошел)



0



Остап Бонд

Заблокирован

04.06.2019, 15:52

4

Лучший ответ Сообщение было отмечено ViktorB3 как решение

Решение

ViktorB3, примерно так-

Visual Basic
1
2
3
4
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Set ma = Cells(Target.Row, 2).MergeArea
    If ma.Count > 1 Then MsgBox ma.Cells(1)
End Sub



1



0 / 0 / 0

Регистрация: 07.07.2017

Сообщений: 32

04.06.2019, 15:56

 [ТС]

5

Остап Бонд, Огромное СПАСИБО!!! Оказывается ларчик просто открывался!



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

04.06.2019, 15:56

5

3 ответа

Даже если это действительно не рекомендуется использовать ячейки слияния в Excel (используйте Center Across Selection, если это необходимо), ячейка, которая «содержит» значение — это значение верхний левый (по крайней мере, способ выразить это).

Следовательно, вы можете получить значение объединенных ячеек в диапазоне B4:B11 несколькими способами:

  • Range("B4").Value
  • Range("B4:B11").Cells(1).Value
  • Range("B4:B11").Cells(1,1).Value

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

Также обратите внимание, что Range("B4:B11").Value не будет работать (вызывает ошибку выполнения номер 13 при попытке Debug.Print), потому что он возвращает массив.

JMax
23 фев. 2012, в 07:31

Поделиться

Джош Браун дал (в комментарии), что я считаю лучшим ответом:

Когда я не знаю границ объединенной области, я получаю значение с помощью

Range("B6").MergeArea.Cells(1,1).Value

Это полезно в VBA, когда, например, вы перебираете файлы, которые могли бы объединить ячейки неизвестных диапазонов, поэтому вы можете быть гораздо более общим с помощью этого метода. Спасибо, Джош!

todd w
04 дек. 2013, в 02:03

Поделиться

Это можно сделать в 2 этапа:

Сначала укажите диапазон объединенных ячеек; выделите объединенную ячейку, затем перейдите на панель ленты: Formulas Tab --> Define Name;

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

Нажмите enter, потому что сделанный.

Christopher Lazok
21 авг. 2014, в 16:24

Поделиться

Ещё вопросы

  • 1Закрывает ли файл открытие и выполнение операции над этим файлом в одной строке?
  • 0Javascript setinterval, играющий все, когда я возвращаюсь к окну
  • 1Внешнее переопределение функции модуля Python
  • 0невозможно открыть div при наведении курсора и выбрать содержимое внутри div
  • 0Запрос данных УЗЕЛ УГЛОВОЙ
  • 0Что за ужасный сбой с моим триггером mysql?
  • 0Как закрыть определенную веб-страницу с помощью PHP?
  • 1c # Datetime привязанный текстовое поле удаляет начинающиеся 0
  • 1Java: создание пользовательских наборов элементов
  • 1Происходит ли бокс при передаче массива через интерфейс IList <T>?
  • 0Перебрать массив несколько раз
  • 1Как я могу вычислить гессиан функции потерь в MXNet?
  • 0PHP IMAP получает вложение с сервера Microsoft Exchange
  • 1Используйте Joda-Time для расчета следующего дня недели со временем
  • 1Как исправить экспресс предупреждение вебпака? [Дубликат]
  • 0Поведение boost :: condition_variable :: notify_one ()
  • 0Не удается удалить файлы cookie SMSESSION, PHPSESSID, в Siteminder
  • 1D3 v4 силовой ориентированный граф с прямоугольниками
  • 1Комбинации без дубликатов всех элементов в Python
  • 1подсчет количества значений в определенном ключе для словаря Python
  • 1Получить значение из текстового поля внутри DataTemplate (WPF)
  • 1Скопируйте запись в bindingsource
  • 1Изменить VisualState элемента ListBox
  • 0Невозможно манипулировать унаследованной областью действия в ссылке директивы (реализация директивы кода конами)
  • 0добавление div в конце динамически созданной строки
  • 0Что такое максимальный край в минимаксном алгоритме?
  • 0Jquery Accordion, оставайтесь открытыми при обновлении / изменении страницы
  • 0Путаница в использовании шаблонов и структур в c ++
  • 0Маскировка нежелательных битов из массива uint64_t
  • 0Ограничение PHP $ _POST
  • 0Похоже, что селектор идентификатора jQuery не позволяет «. ‘ . В чем причина? Что может быть обходным путем? [Дубликат]
  • 0jscrollpane scrolltobottom, но сделать паузу при наведении курсора на полосу прокрутки
  • 1Как удалить элементы из общего списка от начала до определенного условия
  • 0Классный производный дизайн
  • 0Отступы Visual Studio для краткой инициализации
  • 0Grunt застревает при построении дерева задач для проекта ng-grid в Webstorm в Windows 2012
  • 1Прочитать форму файла txt и выполнить операцию по имени в Python
  • 1Прошедший FAB стал виден на некоторое время
  • 1Повышение производительности функции, которая обрабатывает массив, используя деструктуризацию и рекурсию
  • 0Ошибка сегментации при инициализации вектора инициализированным массивом в C ++
  • 1Можно ли JToolTip остаться на
  • 1Прерывание потока против вызова функции JNI
  • 0редактирование CSS для позиционирования контента
  • 1Как преобразовать эти 2 столбца даты / времени в 1?
  • 0Невозможно переопределить заголовки PHP-типа контента
  • 1обработка XML DOM в JavaScript-паре SpiderMonkey 1.8 — функция appendChild (childnode)
  • 1Цикл Python для создания словаря
  • 0Установите пространство имен для тега XML с помощью PHP
  • 1Переместить объект-слайдер d3 в указанное место

I created a sheet with merged cells, but the value of the merged cells is only stored in the first cell. Is there anyway, to keep the same value in each of the cells, I need that for a formula I use. Thanks!

MackM's user avatar

MackM

2,8665 gold badges32 silver badges45 bronze badges

asked Jun 24, 2011 at 6:34

Kinshuk's user avatar

4

In Excel 2003 this macro does the job:

Public Sub UnmergeAndFill()
    With Selection
        If .MergeCells Then
            .MergeCells = False
            Selection.Cells(1, 1).Copy
            ActiveSheet.Paste 'Or PasteSpecial xlPasteFormulasAndNumberFormats
        End If
    End With
End Sub

Create the macro by

  1. pressing Alt-F11, Ctrl-R, menu Insert/Module, paste the code;
  2. alternatively: Alt-F8, type a new name (UnmergeAndFill, e.g.), click Make or Create (? don’t know the English button text)

Invoke the Macro by pressing Alt-F8, select it, Run. Alternatively map it to a key

answered Jun 24, 2011 at 8:11

sehe's user avatar

sehesehe

368k47 gold badges449 silver badges622 bronze badges

4

You could use a custom VBA function that gives directly the value of the merged cell, no matter which one you select. In that case it is not necessary to duplicate the values.

  1. Switch to VBA view (Alt-F11)
  2. Create a new module via Insert > Module
  3. In your project, browse to the new module (you might want to give it a new name via the (name) property just under the explorer)
  4. Copy the following code in the module (pasting the code in ThisWorkbook will not work)

Code:

Option Explicit

Function GetMergedValue(location As Range)
    If location.MergeCells = True Then
        GetMergedValue = location.MergeArea(1, 1)
    Else
        GetMergedValue = location
    End If
End Function
  1. You can now use the formula in excel

Code:

=GetMergedValue(A1)

Where A1 is a part of a merged cell.

answered May 23, 2016 at 8:41

takje's user avatar

takjetakje

2,56027 silver badges45 bronze badges

1

I know this is a rather old question, but this is the first place I landed when looking for an answer, and the accepted answer did not help at all. I DID discover an excellent answer, however, on MrExcel which I thought was worth putting on this thread for the benefit of anyone else googling for an answer:
http://www.mrexcel.com/forum/general-excel-discussion-other-questions/487941-data-multiple-cells-within-merged-cell-possible.html

To save looking up the link, the answer is remarkably simple; if you merge cells using Excel Format Painter, rather than Merge Cells, it preserves the data/formulae ‘underlying’ the merged cells. You just need to create a temporary merged block of cells in the right format somewhere else, to use as a template for the Format Painter. You can delete them afterwards. One thing to watch out for, though, is having ‘hidden’ data like this can be a trap for the unwary, since editing the visible cell does not change the invisible ones.

answered Dec 4, 2014 at 21:09

Knackiedoo's user avatar

KnackiedooKnackiedoo

5023 silver badges8 bronze badges

2

you can make a new column (or row) and apply this formula in first cell and drag it down:

I suppose in column A you have merged cells (for example A1:A3 & A5:A8 are merged).

  1. Insert a column before column A

  2. In A1 type:

    =B1
    
  3. Copy the formula below in A2 :

    =IF(B2="",A1,B2)
    
  4. Drag down the formula u typed in A2

In your formulas use the newly created column and after use you can hide it.

Mihai Iorga's user avatar

Mihai Iorga

39.1k16 gold badges109 silver badges107 bronze badges

answered Aug 21, 2012 at 8:02

Nima's user avatar

can you not store the actual values somewhere else? instead of the merged cell? and yes , use a formula to display the value on the merged cell.

answered Jun 24, 2011 at 6:37

DAEMYO's user avatar

DAEMYODAEMYO

9898 silver badges12 bronze badges

1

Assume column «A» has merged cells — put this in B1 and copy it to fill the rest of the column:

=IF(ISBLANK(A1);OFFSET(B1;-1;0);A1)

It checks if the cell to the left has a value if it has it returns its value, if not, it takes the value from the upper cell.

Note that it doesn’t work for the empty cells. First fill empty cells in column «A» with something unique, like «(empty)» and replace it back with emptiness both in «A» and «B» after filling column «B».

answered May 11, 2016 at 6:29

plavozont's user avatar

plavozontplavozont

8079 silver badges17 bronze badges

I improved on sehe’s macro to do as many merged cells as you select.

Code:

Public Sub UnmergeAndFillMultiple()
    Dim w As Range, m As Range, n As Range
    For Each w In Selection.Cells
        If w.MergeCells Then
            Set n = w.MergeArea.Cells(1, 1)
            Set m = w.MergeArea
            w.MergeCells = False
            n.Copy
            m.PasteSpecial
        End If
    Next
End Sub

answered Apr 4, 2018 at 18:12

Darrel Belvin's user avatar

Say A13 through A52 are merged.
a = Cells(13,1) will return a value but
a = Cells(14,1) will not «Empty»
Fix:
a = Cells(X,1).MergeArea(1, 1) 'if x=13 through 52 will return value in A13.
don’t know how i got this to work but it works.

rootShiv's user avatar

rootShiv

1,3072 gold badges5 silver badges20 bronze badges

answered May 25, 2022 at 2:40

James Cottrell's user avatar

 Dim rowcnt As Long, i As Long
    rowcnt = Cells(Rows.Count, "A").End(xlUp).Row
    For i = rowcnt To 3 Step -1
        With Cells(i, 1)
            If .Value = Cells(i - 1, 1).Value Then
                .Font.ColorIndex = 9
            End If
        End With
    Next i

ush189's user avatar

ush189

1,2906 gold badges21 silver badges29 bronze badges

answered Apr 25, 2019 at 12:38

Balaji Aerospian's user avatar

как обратиться к объединенной ячейке

olgao

Дата: Четверг, 18.04.2013, 15:08 |
Сообщение № 1

Группа: Пользователи

Ранг: Новичок

Сообщений: 11

Подскажите пожалуйста, у меня есть столбец А и в нем несколько объединенных ячеек, например, А3:А7, А8:А15 и т.д. (они разного размера), как обращаться к ячейке А4, А5 и т.д., чтобы в переменную записывалось содержание этой объединенной ячейки; у меня в цикле из ячейки А3 все нормально присваивается, а при следующих значениях выдает ошибку.

 

Ответить

Serge_007

Дата: Четверг, 18.04.2013, 15:10 |
Сообщение № 2

Группа: Админы

Ранг: Местный житель

Сообщений: 15894


Репутация:

2623

±

Замечаний:
±


Excel 2016

Цитата (olgao)

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

В объединённых ячейках нет содержимого, кроме как в левой верхней ячейке диапазона объединения


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

olgao

Дата: Четверг, 18.04.2013, 15:14 |
Сообщение № 3

Группа: Пользователи

Ранг: Новичок

Сообщений: 11

Цитата (Serge_007)

В объединённых ячейках нет содержимого, кроме как в левой верхней ячейке диапазона объединения

ну что мне теперь отменять объединение и в каждой ячейке подряд одно и тоже писать, чтобы программа считать нормально могла? как-то же это можно обойти

Сообщение отредактировал olgaoЧетверг, 18.04.2013, 15:14

 

Ответить

M73568

Дата: Четверг, 18.04.2013, 15:18 |
Сообщение № 4

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 197


Репутация:

46

±

Замечаний:
0% ±


2007-2013

Цитата (olgao)

ну что мне теперь отменять объединение и в каждой ячейке подряд одно и тоже писать, чтобы программа считать нормально могла? как-то же это можно обойти

Без примера как-то сложно сказать

 

Ответить

Serge_007

Дата: Четверг, 18.04.2013, 15:21 |
Сообщение № 5

Группа: Админы

Ранг: Местный житель

Сообщений: 15894


Репутация:

2623

±

Замечаний:
±


Excel 2016

Цитата (olgao)

как-то же это можно обойти

Нет

Цитата (olgao)

мне теперь отменять объединение?

Естественно. И зачем было его вообще использовать?!

Цитата (olgao)

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

А вот это зависит от того что там у Вас за данные на листе, как именно они расположены, что делает Ваш код и от кучи других факторов


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

olgao

Дата: Четверг, 18.04.2013, 15:26 |
Сообщение № 6

Группа: Пользователи

Ранг: Новичок

Сообщений: 11

Цитата (M73568)

Без примера как-то сложно сказать

While Worksheets(«Íàãðóçêà»).Cells(N + 3, 6).Value <> «»
Prepod = Worksheets(«Íàãðóçêà»).Cells(N + 3, 1).Value ‘Здесь как раз исследуется этот столбец с объединенными ячейками, в них фамилии
Workbooks.Open («C:Documents and SettingsÀëåêñåéÐàáî÷èé ñòîëVBAäèïëîìÂûïèñêè» & Prepod & «.xls»)
Wend
N = N + 1
[admin]
Оформляйте коды тегами![/admin]

 

Ответить

olgao

Дата: Четверг, 18.04.2013, 15:29 |
Сообщение № 7

Группа: Пользователи

Ранг: Новичок

Сообщений: 11

Цитата (olgao)

Serge_007: Оформляйте коды тегами!

я не знаю как это делается, на форум обращаюсь второй раз за свою жизнь.

 

Ответить

Матраскин

Дата: Четверг, 18.04.2013, 15:30 |
Сообщение № 8

Группа: Друзья

Ранг: Обитатель

Сообщений: 375


Репутация:

81

±

Замечаний:
0% ±


20xx

Цитата (Serge_007)

В объединённых ячейках нет содержимого, кроме как в левой верхней ячейке диапазона объединения

т.е. если А1 объединить с B1, то чтобы обратиться в дальнейшем к этой объединенной ячейке надо писать А1. ОК?
p.s. B1 утеряна для этого мира


в интернете опять кто-то не прав

Сообщение отредактировал МатраскинЧетверг, 18.04.2013, 15:32

 

Ответить

Serge_007

Дата: Четверг, 18.04.2013, 15:33 |
Сообщение № 9

Группа: Админы

Ранг: Местный житель

Сообщений: 15894


Репутация:

2623

±

Замечаний:
±


Excel 2016

Цитата (olgao)

я не знаю как это делается

Знать и не требуется. Достаточно уметь читать. В правилах всё есть, подробно и с картинками

Цитата (Матраскин)

чтобы обратиться в дальнейшем к этой объединенной ячейке надо писать А1

Скорее не к самой объединенной ячейке, а к данным в ней)

Цитата (Матраскин)

B1 утеряна для этого мира

Верно smile


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

olgao

Дата: Четверг, 18.04.2013, 15:37 |
Сообщение № 10

Группа: Пользователи

Ранг: Новичок

Сообщений: 11

Цитата (Serge_007)

Знать и не требуется. Достаточно уметь читать. В правилах всё есть, подробно и с картинками

Значит я слепая, потому что я не вижу где это написано в правилах; лучше б помогли с проблемой, чем на ерунду какую-то внимание обращать….

 

Ответить

Serge_007

Дата: Четверг, 18.04.2013, 15:38 |
Сообщение № 11

Группа: Админы

Ранг: Местный житель

Сообщений: 15894


Репутация:

2623

±

Замечаний:
±


Excel 2016

Если для Вас правила — это ерунда, то Вам здесь не место
Всего хорошего!
Тема закрыта


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

Объединение диапазона ячеек в одну или построчно с помощью кода VBA Excel. Метод Range.Merge и свойство MergeCells. Отмена объединения ячеек. Примеры.

Метод Range.Merge

Метод Merge объекта Range объединяет ячейки заданного диапазона в одну или построчно из кода VBA Excel.

Синтаксис метода:

  1. Expression — выражение, возвращающее объект Range.
  2. Across — логическое значение, определяющее характер объединения ячеек:
    • True — ячейки объединяются построчно: каждая строка заданного диапазона преобразуется в одну ячейку.
    • False — весь диапазон преобразуется в одну ячейку. False является значением по умолчанию.

Преимущество метода Range.Merge перед свойством MergeCells заключается в возможности построчного объединения ячеек заданного диапазона без использования цикла.

Свойство MergeCells

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

Синтаксис свойства с присвоением значения:

Expression.MergeCells = Boolean

  1. Expression — выражение, представляющее объект Range.
  2. Boolean — логическое значение, определяющее необходимость объединения ячеек или его отмены:
    • True — объединение ячеек заданного диапазона.
    • False — отмена объединения ячеек.

С помощью свойства MergeCells можно из кода VBA Excel проверять диапазон (отдельную ячейку), входит ли он (она) в объединенную ячейку (True) или нет (False). Если проверяемый диапазон окажется комбинированным, то есть содержащим объединенные и необъединенные ячейки, компилятор сгенерирует ошибку.

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

Метод Range.UnMerge

Метод UnMerge объекта Range разделяет объединенную область на отдельные ячейки из кода VBA Excel.

Синтаксис метода:

Expression — выражение, возвращающее объект Range.

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

Примеры объединения ячеек и его отмены

Пример 1
Наблюдаем, как происходит объединение ячеек при разных значениях параметра Across:

Sub Primer1()

‘Объединяем ячейки диапазона «A1:D4» построчно

   Range(«A1:D4»).Merge (True)

‘Объединяем диапазон «A5:D8» в одну ячейку

‘Across принимает значение False по умолчанию

   Range(«A5:D8»).Merge

End Sub

Не забываем, что логическое выражение True можно заменить единичкой, а False — нулем.

Пример 2
Отменяем объединение ячеек в диапазонах из первого примера:

Sub Primer2()

   Range(«A1:D8»).MergeCells = False

End Sub

Пример 3
Предполагается, что перед этим примером отменено объединение ячеек кодом из предыдущего примера.

Sub Primer3()

‘Объединяем ячейки диапазона «A1:D4»

   Range(«A1:D4»).MergeCells = 1

‘Проверяем принадлежность диапазона

‘объединенной ячейке*

   MsgBox Range(«A1:C2»).MergeCells

   MsgBox Range(«A6:C7»).MergeCells

‘Ячейки диапазона «A5:D8»

‘можно объединить и так

   Cells(5, 1).Resize(4, 4).Merge

End Sub

*Если проверяемый диапазон окажется комбинированным, VBA Excel сгенерирует ошибку.
Пример 4
Отмена объединения ячеек с помощью метода Range.UnMerge:

Sub Primer4()

‘Объединяем ячейки диапазона «A1:C4»

    Range(«A1:C4»).Merge

    MsgBox «Ячейки диапазона ««A1:C4»» объединены»

‘Смотрим адрес диапазона, входящего в объединенную ячейку

    MsgBox Range(«A2»).MergeArea.Address

‘Отменяем объединение ячеек диапазона «A1:C4»

    Range(«B3»).UnMerge  ‘или: Range(«B3»).MergeArea.UnMerge

    MsgBox «Объединение ячеек диапазона ««A1:C4»» отменено»

End Sub

Предупреждение перед объединением

Если объединяемые ячейки не являются пустыми, пред их объединением появится предупреждающее диалоговое окно с сообщением: «В объединенной ячейке сохраняется только значение из верхней левой ячейки диапазона. Остальные значения будут потеряны.»

Пример 5
Наблюдаем появление предупреждающего окна:

Sub Primer5()

‘Отменяем объединение ячеек в диапазоне «A1:D4»

   Range(«A1:D4»).MergeCells = 0

‘Заполняем ячейки диапазона текстом

   Range(«A1:D4») = «Ячейка не пустая»

‘Объединяем ячейки диапазона «A1:D4»

   Range(«A1:D4»).MergeCells = 1

‘Наблюдаем предупреждающее диалоговое окно

End Sub

Предупреждающее окно перед объединением ячеек

Чтобы избежать появление предупреждающего окна, следует использовать свойство Application.DisplayAlerts, с помощью которого можно отказаться от показа диалоговых окон при работе кода VBA Excel.

Пример 6

Sub Primer6()

‘Отменяем объединение ячеек в диапазоне «A5:D8»

   Range(«A5:D8»).MergeCells = 0

‘Заполняем ячейки диапазона «A5:D8» текстом

   Range(«A5:D8») = «Ячейка не пустая»

Application.DisplayAlerts = False

   Range(«A5:D8»).MergeCells = 1

Application.DisplayAlerts = True

End Sub

Теперь все прошло без появления диалогового окна. Главное, не забывать после объединения ячеек возвращать свойству Application.DisplayAlerts значение True.

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

Like this post? Please share to your friends:
  • Vba excel значение активной ячейки
  • Vba excel знаки вопроса
  • Vba excel знак числа
  • Vba excel знак табуляции
  • Vba excel знак переноса строки