Excel. Трюки и эффекты | страница 104
Sub FindStartOfData()
With ActiveSheet
' Заносим текст в ячейку, являющуюся левой верхней _
ячейкой используемого диапазона
.Cells(.UsedRange.Row, .UsedRange.Column).Value = _
«Начало данных»
End With
End Sub
После выполнения данного макроса в левой верхней ячейке диапазона, содержащего данные, отобразится текст Начало данных (этот текст можно изменять по своему усмотрению). Подобный трюк удобно применять при работе с большими объемами данных, когда они разбросаны по всему рабочему листу и трудно определить точное место их начала (особенно если первые данные диапазона находятся, например, в ячейке Т350).
Трюки с примечаниями
В данном разделе мы рассмотрим, каким образом можно быстро определить наличие на рабочем листе примечаний и подсчитать их, а также вывести их в виде текста в ячейку справа либо в отдельный список.
Подсчет примечаний
По умолчанию ячейки, содержащие примечания, помечаются соответствующим индикатором, который расположен в правом верхнем углу ячейки (обычно это красный треугольник). Однако если примечание скрыто и ячейка, к которой оно создано, ничем не отличается от остальных ячеек рабочего листа, то, чтобы определить, имеются ли на текущем рабочем листе примечания, и подсчитать их количество, можно написать и выполнить следующий макрос (листинг 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).
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