Excel. Трюки и эффекты | страница 104



Листинг 3.33. Поиск начала данных

Sub FindStartOfData()

With ActiveSheet

' Заносим текст в ячейку, являющуюся левой верхней _

ячейкой используемого диапазона

.Cells(.UsedRange.Row, .UsedRange.Column).Value = _

«Начало данных»

End With

End Sub

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

Трюки с примечаниями

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

Подсчет примечаний

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

Листинг 3.34. Подсчет примечаний

Sub CountOfComment()

Dim intCommentCount As Integer

' Получение и отображение количества примечаний _

на текущем листе

intCommentCount = ActiveSheet.Comments.Count

If intCommentCount = 0 Then

MsgBox «Примечаний нет»

Else

MsgBox "Примечаний: " & intCommentCount & « шт.»

End If

End Sub

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

Вывод на экран всех примечаний рабочего листа

Применив несложный трюк, можно вывести все примечания, содержащиеся на рабочем листе или в выделенном его диапазоне, в ячейки, расположенные справа от соответствующих примечаний. Решить эту задачу поможет такой макрос (листинг 3.35).

Листинг 3.35. Список примечаний

Sub ShowComments()

Dim cell As Range

Dim rgCells As Range

' Получение всех ячеек с примечаниями

Set rgCells = Selection.SpecialCells(xlComments)

If rgCells Is Nothing Then

' Примечаний нет

Exit Sub

End If

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

For Each cell In rgCells

' Вывод примечаний в соседнюю ячейку

cell.Next.Value = cell.Comment.Text