В результате очередного мониторинга определения степени заполнения разделов сайтов ОУ района была создана таблица Сбор.
Именно в таком виде эта таблица была выложена в ресурсе Google для общего использования.
Собранные от ОУ данные из листа Сбор мы потом просто скопировали и вставили в таблицу EXCEL на Google.
Но это данные, представленные самими ОУ. Необходимо их проверить на истинность. Не секрет, что можно просто отписаться, заполнив значения приблизительно, а потом сослаться, что ошиблись, чтобы потом позже исправить значения на верные или подогнать их к нужному результату.
Девиз:,-“Доверяй, но проверяй”, никто пока не отменял. Заполненные ОУ сведения по заполнению ими разделов своего сайта на портале Edumsko.ru надо проверить.
Если распечатывать таблицу в том виде, как она есть, то распечатка будет очень неудобной для анализа и проверки.
Надо перевернуть, вернее транспонировать таблицу, сделав шапку слева. Перед транспонированием и после транспонирования необходимо убрать видимые ошибки, пустые строки и столбцы.
Перевернуть таблицу легко посредством использования массива. А всякие ошибки проще исправлять постепенной проверкой таблицы на эти ошибки и записью макроса в момент выполнения преобразований.
Что в итоге и сделано.
Главный макрос написан, а остальные созданы через меню Сервис-Макрос-Начать запись.
Записанный код можно всегда подправить, добавить или оптимизировать.
Во время работы над программой мне захотелось попытаться и сохранить все форматы ячеек перед транспонированием. Поэтому я начал поиски наиболее простого способа сделать такую работу. Одним из таким методов форматирования является Условное форматирование.
Привожу пример простого макроса, найденного на одном из форумов по Условному форматированию и поиску отличных на 2-х листах значений ячеек с одинаковыми относительными адресами.
Это в какой-то мере шедевр лаконичности, но и сложности понимания работы.
Надо отдельно заниматься темой Условного форматирования, чтобы понять все нюансы его применения с помощью кода VBA.
Sub SetFormatCondition()
Dim strFormula As String
On Error Resume Next
With Worksheets(“Лист1”)
.Names(“FormatCondition”).Delete
.Names.Add Name:=”FormatCondition”, RefersToR1C1:=”=(Лист2!RC<>Лист1!RC)”
On Error GoTo 0
With .UsedRange
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:=”=FormatCondition”
.FormatConditions(1).Interior.ColorIndex = 4
End With
End With
End Sub
Ссылка на файл по транспонированию и преобразованию для печати таблицы Сбор