Excel vba копирование высоты строк
Здравствуйте, встретил макрос на просторах сети с автоподбором высоты строки, частично изменил что бы не оставалось лишнее поле, но не могу найти где можно настроить что бы не выделять диапазон, необходимо что бы редактировало например ячейки A1:O29 на листе 1 и на листе 2 A1:O20 и работало с ними, а не в ручную выделять необходимый диапазон
Здравствуйте, встретил макрос на просторах сети с автоподбором высоты строки, частично изменил что бы не оставалось лишнее поле, но не могу найти где можно настроить что бы не выделять диапазон, необходимо что бы редактировало например ячейки A1:O29 на листе 1 и на листе 2 A1:O20 и работало с ними, а не в ручную выделять необходимый диапазон kyznezov3003
Если есть возможность то прошу в ячейке Exel написать код и отметить красным что нужно менять kyznezov3003
Sub U_729()
Sheets("Лист1").Rows("1:29").Rows.AutoFit
Sheets("Лист2").Rows("1:20").Rows.AutoFit
End Sub
Sub U_729()
Sheets("Лист1").Rows("1:29").Rows.AutoFit
Sheets("Лист2").Rows("1:20").Rows.AutoFit
End Sub
Sub U_729()
Sheets("Лист1").Rows("1:29").Rows.AutoFit
Sheets("Лист2").Rows("1:20").Rows.AutoFit
End Sub
Спасибо за совет, возможно криво но вроде сделал, вот код с исправлениями добавляются значения "Sheets("Лист2").Select и Range("C16:F18").Select", но вот возникла проблема что автопоставка размера по выделенным ячейкам происходит только на одном листе, можете что-либо посоветовать?
[vba]
Sub ChangeRowColHeight()
Dim rc As Range
Dim bRow As Boolean
bRow = (MsgBox("Изменять высоту строк?", vbQuestion + vbYesNo, "") = vbYes)
'bRow = True: для изменения высоты строк
'bRow = False: для изменения ширины столбцов
Sheets("Лист1").Select
Range("C16:F18").Select
Sheets("Лист2").Select
Range("C16:F18").Select
Application.ScreenUpdating = False
For Each rc In Selection
RowColHeightForContent rc, bRow
Next
Application.ScreenUpdating = True
End Sub
'---------------------------------------------------------------------------------------
Function RowColHeightForContent(rc As Range, Optional bRowHeight As Boolean = True)
'rc - ячейка, высоту строки или ширину столбца которой необходимо подобрать
'bRowHeight - True - если необходимо подобрать высоту строки
' False - если необходимо подобрать ширину столбца
Dim OldR_Height As Single, OldC_Widht As Single
Dim MergedR_Height As Single, MergedC_Widht As Single
Dim CurrCell As Range
Dim ih As Integer
Dim iw As Integer
Dim NewR_Height As Single, NewC_Widht As Single
Dim ActiveCellHeight As Single
If rc.MergeCells Then
With rc.MergeArea 'если ячейка объединена
'запоминаем кол-во столбцов
iw = .Columns(.Columns.Count).Column - rc.Column + 1
'запоминаем кол-во строк.
ih = .Rows(.Rows.Count).Row - rc.Row + 1
'Определяем высоту и ширину объединения ячеек
MergedR_Height = 0
For Each CurrCell In .Rows
MergedR_Height = CurrCell.RowHeight + MergedR_Height
Next
MergedC_Widht = 1
For Each CurrCell In .Columns
MergedC_Widht = CurrCell.ColumnWidth + MergedC_Widht
Next
'запоминаем высоту и ширину первой ячейки из объединенных
OldR_Height = .Cells(0, 0).RowHeight
OldC_Widht = .Cells(1, 1).ColumnWidth
'отмеяем объединение ячеек
.MergeCells = False
'назначаем новую высоту и ширину для первой ячейки
.Cells(0).RowHeight = MergedR_Height
.Cells(1, 1).EntireColumn.ColumnWidth = MergedC_Widht
'если необходимо изменить высоту строк
If bRowHeight Then
.EntireRow.AutoFit
NewR_Height = .Cells(1).RowHeight 'запоминаем высоту строки
.MergeCells = True
If OldR_Height < (NewR_Height / ih) Then
.RowHeight = NewR_Height / ih
Else
.RowHeight = OldR_Height
End If
'возвращаем ширину столбца первой ячейки
.Cells(1, 1).EntireColumn.ColumnWidth = OldC_Widht
Else 'если необходимо изменить ширину столбца
.EntireColumn.AutoFit
NewC_Widht = .Cells(1).EntireColumn.ColumnWidth 'запоминаем ширину столбца
.MergeCells = True
If OldC_Widht < (NewC_Widht / iw) Then
.ColumnWidth = NewC_Widht / iw
Else
.ColumnWidth = OldC_Widht
End If
'возвращаем высоту строки первой ячейки
.Cells(1, 1).RowHeight = OldR_Height
End If
End With
End If
End Function
Спасибо за совет, возможно криво но вроде сделал, вот код с исправлениями добавляются значения "Sheets("Лист2").Select и Range("C16:F18").Select", но вот возникла проблема что автопоставка размера по выделенным ячейкам происходит только на одном листе, можете что-либо посоветовать?
[vba]
Sub ChangeRowColHeight()
Dim rc As Range
Dim bRow As Boolean
bRow = (MsgBox("Изменять высоту строк?", vbQuestion + vbYesNo, "") = vbYes)
'bRow = True: для изменения высоты строк
'bRow = False: для изменения ширины столбцов
Sheets("Лист1").Select
Range("C16:F18").Select
Sheets("Лист2").Select
Range("C16:F18").Select
Application.ScreenUpdating = False
For Each rc In Selection
RowColHeightForContent rc, bRow
Next
Application.ScreenUpdating = True
End Sub
'---------------------------------------------------------------------------------------
Function RowColHeightForContent(rc As Range, Optional bRowHeight As Boolean = True)
'rc - ячейка, высоту строки или ширину столбца которой необходимо подобрать
'bRowHeight - True - если необходимо подобрать высоту строки
' False - если необходимо подобрать ширину столбца
Dim OldR_Height As Single, OldC_Widht As Single
Dim MergedR_Height As Single, MergedC_Widht As Single
Dim CurrCell As Range
Dim ih As Integer
Dim iw As Integer
Dim NewR_Height As Single, NewC_Widht As Single
Dim ActiveCellHeight As Single
If rc.MergeCells Then
With rc.MergeArea 'если ячейка объединена
'запоминаем кол-во столбцов
iw = .Columns(.Columns.Count).Column - rc.Column + 1
'запоминаем кол-во строк.
ih = .Rows(.Rows.Count).Row - rc.Row + 1
'Определяем высоту и ширину объединения ячеек
MergedR_Height = 0
For Each CurrCell In .Rows
MergedR_Height = CurrCell.RowHeight + MergedR_Height
Next
MergedC_Widht = 1
For Each CurrCell In .Columns
MergedC_Widht = CurrCell.ColumnWidth + MergedC_Widht
Next
'запоминаем высоту и ширину первой ячейки из объединенных
OldR_Height = .Cells(0, 0).RowHeight
OldC_Widht = .Cells(1, 1).ColumnWidth
'отмеяем объединение ячеек
.MergeCells = False
'назначаем новую высоту и ширину для первой ячейки
.Cells(0).RowHeight = MergedR_Height
.Cells(1, 1).EntireColumn.ColumnWidth = MergedC_Widht
'если необходимо изменить высоту строк
If bRowHeight Then
.EntireRow.AutoFit
NewR_Height = .Cells(1).RowHeight 'запоминаем высоту строки
.MergeCells = True
If OldR_Height < (NewR_Height / ih) Then
.RowHeight = NewR_Height / ih
Else
.RowHeight = OldR_Height
End If
'возвращаем ширину столбца первой ячейки
.Cells(1, 1).EntireColumn.ColumnWidth = OldC_Widht
Else 'если необходимо изменить ширину столбца
.EntireColumn.AutoFit
NewC_Widht = .Cells(1).EntireColumn.ColumnWidth 'запоминаем ширину столбца
.MergeCells = True
If OldC_Widht < (NewC_Widht / iw) Then
.ColumnWidth = NewC_Widht / iw
Else
.ColumnWidth = OldC_Widht
End If
'возвращаем высоту строки первой ячейки
.Cells(1, 1).RowHeight = OldR_Height
End If
End With
End If
End Function
Sub ChangeRowColHeight()
Dim rc As Range
Dim bRow As Boolean
bRow = (MsgBox("Изменять высоту строк?", vbQuestion + vbYesNo, "") = vbYes)
'bRow = True: для изменения высоты строк
'bRow = False: для изменения ширины столбцов
Sheets("Лист1").Select
Range("C16:F18").Select
Sheets("Лист2").Select
Range("C16:F18").Select
Application.ScreenUpdating = False
For Each rc In Selection
RowColHeightForContent rc, bRow
Next
Application.ScreenUpdating = True
End Sub
'---------------------------------------------------------------------------------------
Function RowColHeightForContent(rc As Range, Optional bRowHeight As Boolean = True)
'rc - ячейка, высоту строки или ширину столбца которой необходимо подобрать
'bRowHeight - True - если необходимо подобрать высоту строки
' False - если необходимо подобрать ширину столбца
Dim OldR_Height As Single, OldC_Widht As Single
Dim MergedR_Height As Single, MergedC_Widht As Single
Dim CurrCell As Range
Dim ih As Integer
Dim iw As Integer
Dim NewR_Height As Single, NewC_Widht As Single
Dim ActiveCellHeight As Single
If rc.MergeCells Then
With rc.MergeArea 'если ячейка объединена
'запоминаем кол-во столбцов
iw = .Columns(.Columns.Count).Column - rc.Column + 1
'запоминаем кол-во строк.
ih = .Rows(.Rows.Count).Row - rc.Row + 1
'Определяем высоту и ширину объединения ячеек
MergedR_Height = 0
For Each CurrCell In .Rows
MergedR_Height = CurrCell.RowHeight + MergedR_Height
Next
MergedC_Widht = 1
For Each CurrCell In .Columns
MergedC_Widht = CurrCell.ColumnWidth + MergedC_Widht
Next
'запоминаем высоту и ширину первой ячейки из объединенных
OldR_Height = .Cells(0, 0).RowHeight
OldC_Widht = .Cells(1, 1).ColumnWidth
'отмеяем объединение ячеек
.MergeCells = False
'назначаем новую высоту и ширину для первой ячейки
.Cells(0).RowHeight = MergedR_Height
.Cells(1, 1).EntireColumn.ColumnWidth = MergedC_Widht
'если необходимо изменить высоту строк
If bRowHeight Then
.EntireRow.AutoFit
NewR_Height = .Cells(1).RowHeight 'запоминаем высоту строки
.MergeCells = True
If OldR_Height < (NewR_Height / ih) Then
.RowHeight = NewR_Height / ih
Else
.RowHeight = OldR_Height
End If
'возвращаем ширину столбца первой ячейки
.Cells(1, 1).EntireColumn.ColumnWidth = OldC_Widht
Else 'если необходимо изменить ширину столбца
.EntireColumn.AutoFit
NewC_Widht = .Cells(1).EntireColumn.ColumnWidth 'запоминаем ширину столбца
.MergeCells = True
If OldC_Widht < (NewC_Widht / iw) Then
.ColumnWidth = NewC_Widht / iw
Else
.ColumnWidth = OldC_Widht
End If
'возвращаем высоту строки первой ячейки
.Cells(1, 1).RowHeight = OldR_Height
End If
End With
End If
End Function
Range.PasteSpecial (специальная вставка) – это метод, который вставляет диапазон ячеек, скопированный в буфер обмена, из буфера обмена в указанное место на рабочем листе с учетом заданных параметров специальной вставки.
Синтаксис
Специальная вставка работает только с данными ячеек, скопированными в буфер обмена методом Range.Copy. При попытке применить метод Range.PasteSpecial к ячейкам, вырезанным в буфер обмена методом Range.Cut, возникает ошибка.
Параметры специальной вставки
Список параметров метода Range.PasteSpecial:
Параметры | Описание |
---|---|
Paste | Необязательный параметр. Константа из коллекции XlPasteType, указывающая на часть данных вставляемого диапазона, которую следует вставить. По умолчанию вставляются все данные. |
Operation | Необязательный параметр. Константа из коллекции XlPasteSpecialOperation, указывающая на математические операции, которые следует провести со скопированными данными и данными в ячейках назначения. По умолчанию вычисления не производятся. |
SkipBlanks | Необязательный параметр. Булево значение, которое указывает, вставлять ли в конечный диапазон пустые ячейки: True – не вставлять, False – вставлять (значение по умолчанию). |
Transpose | Необязательный параметр. Булево значение, которое указывает, следует ли транспонировать строки и столбцы при вставке диапазона: True – транспонировать, False – не транспонировать (значение по умолчанию). |
Смотрите другой способ транспонировать диапазоны ячеек и двумерные массивы.
Константы XlPasteType
Список констант из коллекции XlPasteType, которые могут быть использованы в качестве аргумента параметра Paste:
Константа | Значение | Описание |
---|---|---|
xlPasteAll | -4104 | Вставка всех данных (по умолчанию). |
xlPasteAllExceptBorders | 7 | Вставка всех данных, кроме границ. |
xlPasteAllMergingConditionalFormats | 14 | Вставка всех данных со слиянием условных форматов исходного и нового диапазонов. |
xlPasteAllUsingSourceTheme | 13 | Вставка всех данных с использованием исходной темы. |
xlPasteColumnWidths | 8 | Вставка ширины столбцов. |
xlPasteComments | -4144 | Вставка комментариев. |
xlPasteFormats | -4122 | Вставка форматов исходного диапазона. |
xlPasteFormulas | -4123 | Вставка формул. |
xlPasteFormulasAndNumberFormats | 11 | Вставка формул и форматов чисел. |
xlPasteValidation | 6 | Вставка правил проверки данных из ячеек исходного диапазона в новый диапазон. |
xlPasteValues | -4163 | Вставка значений. |
xlPasteValuesAndNumberFormats | 12 | Вставка значений и форматов чисел. |
Константы XlPasteSpecialOperation
Список констант из коллекции XlPasteSpecialOperation, которые могут быть использованы в качестве аргумента параметра Operation:
Константа | Значение | Описание |
---|---|---|
xlPasteSpecialOperationAdd | 2 | Скопированные данные будут добавлены к значениям в ячейках назначения. |
xlPasteSpecialOperationDivide | 5 | Скопированные данные разделят значения в ячейках назначения. |
xlPasteSpecialOperationMultiply | 4 | Скопированные данные будут перемножены со значениями в ячейках назначения. |
xlPasteSpecialOperationNone | -4142 | Вычисления не выполняются при вставке данных (по умолчанию). |
xlPasteSpecialOperationSubtract | 3 | Скопированные данные будут вычтены из значений в ячейках назначения. |
Примеры
Примеры копирования и специальной вставки актуальны для диапазона "A1:B8" активного листа, ячейки которого заполнены числами:
Размер ячейки по высоте и ширине определяется высотой строки и шириной столбца, на пересечении которых она находится. Если, в вашем случае, нежелательно изменять размеры всей строки или всего столбца, используйте объединенные ячейки нужной величины.
Обратите внимание, что высота строки задается в пунктах, а ширина столбца в символах, поэтому их числовые значения не соответствуют друг другу по фактическому размеру.
Высота строки и ширина столбца в Excel
Программно, без дополнительных макросов, можно изменять высоту строки только в пунктах, а ширину столбца только в символах.
На сайте поддержки офисных приложений Microsoft так написано об этих величинах:
- высота строки может принимать значение от 0 до 409 пунктов, причем 1 пункт приблизительно равен 1/72 дюйма или 0,035 см;
- ширина столбца может принимать значение от 0 до 255, причем это значение соответствует количеству символов, которые могут быть отображены в ячейке.
Смотрите, как сделать все ячейки рабочего листа квадратными.
Высота строки
Для изменения высоты строки используйте свойство RowHeight объекта Range. И не важно, будет объект Range представлять из себя выделенный произвольный диапазон, отдельную ячейку, целую строку или целый столбец — высота всех строк, пересекающихся с объектом Range будет изменена после присвоения свойству RowHeight этого объекта нового значения.
Примеры изменения высоты строк:
Пример 1
Изменение высоты отдельной ячейки:
в результате, строка, в которой находится активная ячейка, приобретает высоту, равную 10 пунктам.
Пример 2
Изменение высоты строки:
в результате, третья строка рабочего листа приобретает высоту, равную 30 пунктам.
Пример 3
Изменение высоты ячеек заданного диапазона:
в результате, каждой из первых шести строк рабочего листа будет задана высота, равная 20 пунктам.
Пример 4
Изменение высоты ячеек целого столбца:
в результате, всем строкам рабочего листа будет назначена высота, равная 15 пунктам.
Ширина столбца
Для изменения ширины столбца используйте свойство ColumnWidth объекта Range. Как и в случае с высотой строки, не важно, будет объект Range представлять из себя выделенный произвольный диапазон, отдельную ячейку, целую строку или целый столбец — ширина всех столбцов, пересекающихся с объектом Range будет изменена после присвоения свойству ColumnWidth этого объекта нового значения.
Примеры изменения ширины столбцов:
Пример 1
Изменение ширины отдельной ячейки:
в результате, столбец, в котором находится активная ячейка, приобретает ширину, равную 15 символам.
Пример 2
Изменение ширины столбца:
в результате, третий столбец рабочего листа (столбец «C») приобретает ширину, равную 50 символам.
Пример 3
Изменение ширины ячеек заданного диапазона:
в результате, каждому из первых четырех столбцов рабочего листа будет задана ширина, равная 25 символам.
Пример 4
Изменение ширины ячеек целой строки:
в результате, всем столбцам рабочего листа будет назначена ширина, равная 35 символам.
Автоподбор ширины
Для автоподбора ширины ячейки в соответствие с размером ее содержимого используйте следующий код:
Range.Cut – это метод, который вырезает объект Range (диапазон ячеек) в буфер обмена или перемещает его в указанное место на рабочем листе.
Синтаксис
Параметры
Параметры | Описание |
---|---|
Destination | Необязательный параметр. Диапазон ячеек рабочего листа, в который будет вставлен (перемещен) вырезанный объект Range (достаточно указать верхнюю левую ячейку диапазона). Если этот параметр опущен, объект вырезается в буфер обмена. |
Для вставки на рабочий лист диапазона ячеек, вырезанного в буфер обмена методом Range.Cut, следует использовать метод Worksheet.Paste.
Метод Range.Copy
Range.Copy – это метод, который копирует объект Range (диапазон ячеек) в буфер обмена или в указанное место на рабочем листе.
Синтаксис
Параметры
Параметры | Описание |
---|---|
Destination | Необязательный параметр. Диапазон ячеек рабочего листа, в который будет вставлен скопированный объект Range (достаточно указать верхнюю левую ячейку диапазона). Если этот параметр опущен, объект копируется в буфер обмена. |
Метод Worksheet.Paste
Синтаксис
Метод Worksheet.Paste работает как с диапазонами ячеек, вырезанными в буфер обмена методом Range.Cut, так и скопированными в буфер обмена методом Range.Copy.
Параметры
Параметры | Описание |
---|---|
Destination | Необязательный параметр. Диапазон (ячейка), указывающий место вставки содержимого буфера обмена. Если этот параметр не указан, используется текущий выделенный объект. |
Link | Необязательный параметр. Булево значение, которое указывает, устанавливать ли ссылку на источник вставленных данных: True – устанавливать, False – не устанавливать (значение по умолчанию). |
В выражении с методом Worksheet.Paste можно указать только один из параметров: или Destination, или Link.
Для вставки из буфера обмена отдельных компонентов скопированных ячеек (значения, форматы, примечания и т.д.), а также для проведения транспонирования и вычислений, используйте метод Range.PasteSpecial (специальная вставка).
Примеры
Вырезание и вставка диапазона одной строкой (перемещение):
Вырезание ячеек в буфер обмена и вставка методом ActiveSheet.Paste:
Копирование и вставка диапазона одной строкой:
Копирование ячеек в буфер обмена и вставка методом ActiveSheet.Paste:
Копирование одной ячейки и вставка ее данных во все ячейки заданного диапазона:
18 комментариев для “VBA Excel. Вырезание, копирование и вставка ячеек (диапазонов)”
Странно, что не рассмотрено копирование ячеек, которые Cells.
Например, следующая строка копирует ячейку A1 в B2
а эта делает тоже самое, но демонстрирует,
как можно добавить размер и смещение:
Cells ( 1 , "A" ) . Resize ( 1 , 1 ) . Offset ( 0 , 0 ) . Copy Cells ( 2 , "B" ) . Resize ( 1 , 1 ) . Offset ( 0 , 0 )
Здравствуйте!
Скажите, как можно копировать на Лист 1, а вставить на Лист 2 диапазон ячеек целиком, либо отсортированный по 1 признаку диапазон(например по какому-то определенному значению, скажем, числу «500» в одном столбце Листа 1)?
Привет, Максим!
Вот пример сортировки таблицы по значению 500 в первом столбце на "Лист6" и копирования диапазона с "Лист6" на "Лист4" :
Спасибо большое, только я, наверно, неправильно описал ситуацию.
Сперва из эталонной таблицы Лист 1 копируем весь список на существующий Лист4.
Затем, пропускаем шапку, и, начиная со строки7, уже на Лист4 ищем строку, у которой в столбце 5 стоит число 500.
Вырезаем эту строку и вставляем на позицию строки 7. т.е первая после шапки.
Ищем следующую строку — вырезаем, потом вставляем на позицию строки 7+1=8 и т.д.
В итоге оставим только те строки, у которых в столбце 5 стоит число «500», остальные удаляются строки.
(пробовал менять местами строки в предыдущем коде, ошибок нет, копирует, переходит на лист 4, но строки на нем не удаляет, циклы пошагово проходят, но ничего не изменяется.)
Как в Excel скопировать только форматирование из одного диапазона в другой?
Если вы хотите скопировать только форматирование ячейки из диапазона, как это сделать быстро? В этом руководстве представлены быстрые сокращения, позволяющие легко копировать только форматирование.
Копировать форматирование только с помощью Kutools for Excel
Копирование форматирования только с помощью Format Painter в Excel
В Excel вы можете копировать форматирование ячеек только с помощью Формат Painter инструмент.
1. Выберите диапазон, содержащий формат ячеек, который вы хотите скопировать. Смотрите скриншот:
2. Применение Формат Painter щелкнув его под Главная вкладку, см. снимок экрана:
3. Выберите пустую ячейку и щелкните по ней, будет вставлено только форматирование ячеек. Смотрите скриншот:
Внимание: Формат Painter также можно копировать форматирование только на другой лист.
Копировать форматирование только с помощью VBA
Следующие макросы также могут помочь вам скопировать только форматирование ячеек.
1. Держать ALT и нажмите F11 на клавиатуре, чтобы открыть Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модули, и скопируйте VBA в модуль.
VBA: копировать только форматирование ячеек:
3. Нажмите Run или нажмите F5 для запуска VBA. На экране отображается диалоговое окно, и вы должны выбрать ячейки, форматирование которых вы хотите скопировать. Смотрите скриншот:
4. Нажмите Ok и другое диалоговое окно отображается для вас, чтобы выбрать ячейку для вставки форматирования. Смотрите скриншот:
6. Нажмите Ok, то форматирование ячеек вставляется в выбранную ячейку. Смотрите скриншот:
Внимание: С помощью этого кода VBA вы можете вставлять только форматирование в другие рабочие листы, которые вы хотите.
Копировать форматирование только с помощью Kutools for Excel
Есть Kutools for Excel установлен, Копировать диапазоны Функция может помочь вам быстро и легко скопировать только форматирование ячеек.
Пожалуйста, примените Копировать диапазоны функция, нажав Кутулс > Копировать диапазоны. Смотрите скриншот:
1. Выделите ячейки, форматирование которых вы хотите скопировать.
2. Нажмите Кутулс > Копировать диапазонs, на экране появится диалог, отметьте Форматы вариант под Специальная вставка, см. снимок экрана:
3. И нажмите ОК. Другой диалог отображается для вас, чтобы выбрать ячейку для вставки результата. Смотрите скриншот:
4. Нажмите Ok, и в выбранную ячейку вставляется только форматирование. Смотрите скриншот:
Внимание: Вы также можете копировать и вставлять форматирование ячеек между двумя электронными таблицами. Если вы хотите скопировать высоту строки и ширину столбца, вы можете проверить Включая высоту строки и Включая ширину столбца коробка в Копировать несколько диапазонов Диалог.
Работы С Нами Kutools for Excel' Копировать диапазоны, вы также можете копировать только значения, формулы или комментарии.
Копировать форматирование только из диапазона
Наконечник.Если вы хотите подсчитать или суммировать ячейки на основе цветов, попробуйте использовать Kutools for Excel's Считать по цвету как показано на следующем снимке экрана. Полная функция без ограничений в течение 30 дней, пожалуйста, скачайте и получите бесплатную пробную версию сейчас.
Читайте также: