Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Илья Гость
|
Добавлено: Вт Июл 29 2003 23:43 Заголовок сообщения: Формат ячеек (цвет, шрифт, и.т.д) - как объект. Возможно ли такое? |
|
|
В чём проблема: 1. Нужно скопировать из одного листа в другой не только содержимое, но и вид ячейки 2. Читаем лист, в нём строки, если строка имеет такой-то формат то она является обычной строкой, а если другой то, то - заголовком, а следовательно с ней нужно обращатщься по особому
Было бы здорово ... Если бы у объекта Range (на сколько я понимаю: одна ячейка - это Range, две ячейки - Range, целый ряд - Range, свойство Selection - тоже Range и.т.д.) существовало понятное свойство - Format. Которое бы содержало в себе всю лабуду типа цвета, шрифта и прочее. Есть нечто похожее на искомый "Format", называется - Но мне лично не совсем понятна логика по которой этот зверь работает. (Буду рад если кто объяснит) К тому же это нечто является Read only, то есть процедуру сравнения двух ячеек на основе "формата" (если читать, что определяет формат) организовать можно, а вот копирование - никак.
Вообще то, формат ячейки определяется тремя её свойствами:: Interior, Borders и Font
Так что приходиться.. для создания процедуры копирования "формата" копировать отдельно Interior, Font, а вот с Borders - проблема: Borders тоже является read only, более того, каждый его элемент - Border является read only. Сам же Border - совокупность десятка свойств,то есть могжно организовать процедуру копирования присваиванием, в ручную, каждого такого свойста копируемого объекта объекту, из которого мы копируем. Но помойму это не очень красиво. Может можно преукрасить эту процедуру, написав её как-нибудь поумнее А может я вообще чего приципиально не понимаю
Напишите!!! |
|
Вернуться к началу |
|
|
Илья Гость
|
Добавлено: Ср Июл 30 2003 01:11 Заголовок сообщения: Прошу прощенья. В посте ошибки сделал, так что читайте здесь |
|
|
В чём проблема: 1. Нужно скопировать из одного листа в другой не только содержимое, но и вид ячейки 2. Читаем лист, в нём строки, если строка имеет такой-то формат то она является обычной строкой, а если другой то, то - заголовком, а следовательно с ней нужно обращатщься по особому. То есть должна быть возможность сравнивать "форматы" Было бы здорово ... Если бы у объекта Range (на сколько я понимаю: одна ячейка - это Range, две ячейки - Range, целый ряд - Range, свойство Selection - тоже Range и.т.д.) существовало понятное свойство - Format. Которое бы содержало в себе всю лабуду типа цвета, шрифта и прочее. Есть нечто похожее на искомый "Format", называется - FormatCondition. Но мне лично не совсем понятна логика по которой этот зверь работает. (Буду рад если кто объяснит). К тому же это нечто является Read only, то есть процедуру сравнения двух ячеек на основе "формата" (если считать, что FormatConditions определяет формат) организовать можно, а вот копирование - никак. Вообще то, формат ячейки определяется тремя её свойствами:: Interior, Borders и Font Так что приходиться... для создания процедуры копирования "формата" копировать отдельно Interior, Font, а вот с Borders - проблема: Borders тоже является read only, более того, каждый его элемент - Border является read only. Сам же Border - совокупность десятка свойств,то есть можно организовать процедуру копирования присваиванием, в ручную, каждого такого свойста копируемого объекта объекту, из которого мы копируем. Но помойму это не очень красиво. Может можно преукрасить эту процедуру, написав её как-нибудь поумнее? А может я вообще чего приципиально не понимаю? Напишите!!! |
|
Вернуться к началу |
|
|
Борис Гость
|
Добавлено: Ср Июл 30 2003 13:44 Заголовок сообщения: Есть такая профессия -- Родину любить. Это не объяснить одним словом -- это всё разом. (+) |
|
|
Есть такой метод -- copy. Это не сделать одним дублированием -- это всё разом:
Worksheets("Sheet1").Range("A1:D4").Copy destination:=Worksheets("Sheet2").Range("E5") |
|
Вернуться к началу |
|
|
Илья Гость
|
Добавлено: Ср Июл 30 2003 17:45 Заголовок сообщения: Замечательно, вот этого мне и надо было. |
|
|
Единственно только - copy() не дублирует геомитрические размеры. Но это уже куда проще |
|
Вернуться к началу |
|
|
|