Страницы: 1
RSS
Почему диагональные границы в ячейке, вставленные макросом, влияют на верхнюю ячейку
 
Обнаружил такой странный глюк

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

Этого эффекта нет при установке этих диагональных границ вручную
Эффект этот есть как в версии 2010 так и в 2019

Возможно этому есть какое-то обьяснение?
 
как сказал А.Эйнштейн "все в этом мире относительно"
то, что для Д3 является нижней границей, для Д4 - это верхняя граница
устанавливая диагональ в Д4 не трогайте остальных границ (не будете трогать верхнюю границу Д4 - не изменится нижняя граница Д3)

и сталкиваясь с любыми проблемами думайте в первую очередь не о глюкавости Excel, а больше о кривизне собственного кода
если думать о глючности Excel, то с вас какой спрос - никакого! Excel глючит, какой с вас спрос?
а если думать "что не так в моем коде?" - тут же появляется возможность найти ошибку и исправить ее
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Ігор Гончаренко написал: как сказал А.Эйнштейн "все в этом мире относительно"
Выражаетесь Вы весьма цветисто, но может по существу что то скажете?
1) В своем коде я не трогаю  границ D3  и даже не трогаю верхнюю границу D4
2) Даже если бы я там чего то тронул все равно остается неясность почему Excel говорит, что нижняя граница есть но не отрисовывает ее?
 
Чуть что не получается - сразу глюк Excel ))
У одних ВПР "неправильно" работает, у вторых СУММЕСЛИ "неправильно" считает, у третьих с диагональю беда :)
На сразу Excel вмерват.
 
Цитата
Юрий М написал: Чуть что не получается - сразу глюк Excel ))
Ну так может поясните, где там я что неправильно сделал?
 
я не смотрел файл перед первым своим ответом, потому что из собственного опыта знаю, если что-то у меня работает не так как я ожидал, это проблема не Excel, а моего кода.
открыл ваш файл, выполнил макрос, вот результат,  и возникает легкое недоумение - о чем вы писали в стартовом сообщении, что вам не так?
Изменено: Ігор Гончаренко - 04.05.2021 20:31:17
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
lks1965, я ведь не про Вас конкретно - я про некую тенденцию: сразу винить Excel :)
 
Уважаемый гуру! Я далеко не "сразу" обвинил Эксель, да и не обвиняю его
Я порылся в интернетах, обнаружил, что эффект наличия границы в свойствах и отсутствия ее при копировании ячейки иногда встречается, попроводил всякие эксперименты на нескольких версиях Excel и только потом написал этот пост, приложив файл и описав ситуацию.

Цитата
Ігор Гончаренко написал: а что к вас не так
А вы ячейку D3 после выполнения макроса скопируйте куда-то и курсор со скопированной ячейки сдвиньте
 
lks1965, до гуру мне, как до луны ))
А то, что Вы обнаружили сей эффект и поделились с сообществом - большой молодец! )
Я без всякой иронии.
 
а такое впечатление, что у Д3 вы выставляли нижнюю границу?
наверняка для Д1:Д14 были выставлены:
- верхняя,
- нижняя,
- левая,
- правая
- и промежуточные горизонтальные границы
таким образом все получили левую и правую границы, Д1 - верхнюю, Д14 - нижнюю, и все между Д1 и Д14 промежуточную горизонтальную границу

выполните макрос, отметьте Д3 принудительно установите в ней нижнюю границу, копируйте, что видно?
прежде, чем думать о проблемах Excel, задумайтесь о дырах в собственной логике, или хотя бы о том, что ваши логические рассуждения не совпали  с рассуждениями программистов Майкрософт, зафиксируйте это для себя и пользуйтесь их рассуждениями, никто под вас переделывать Excel не будет
Изменено: Ігор Гончаренко - 04.05.2021 20:55:25
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Ігор Гончаренко написал: задумайтесь о дырах в собственной логике,
1. Задумался (еще до написания поста) и не нашел

2.  Скопируйте в произвольное место ячейку D3 до! выполнения макроса   сдвиньте с нее курсор - вы увидите в наличии все границы
 2.1 проверьте наличие границ у ячеек D3,D4  (ПКМ->формат ячеек->границы)- вы увидите что у обоих ячеек есть все границы по контуру

3. Выполните макрос
 3.1 проверьте наличие границ у ячеек D3,D4  (ПКМ->формат ячеек->границы)- вы увидите что у обоих ячеек есть все границы по контуру (да точно так как и в п 2.1)

4. Снова скопируйте в произвольное место ячейку D3, сдвиньте с нее курсор и вы не увидите нижней границы у вновь скопированной ячейки

5) "выполните макрос, отметьте Д3 принудительно установите в ней нижнюю границу, копируйте, что видно?"
Если загляните в макрос то увидите там закоментированную строчку
    Cells(3, 4).Borders(xlEdgeTop).LineStyle = xlContinuous
Как нетрудно догадаться  эта строчка принудительно устанавливает  нижнюю границу в D3 для компенсации обнаруженного эффекта

И последнее
Я вообще спросил в первом посте может ли кто-то объяснить этот эффект. То мне начинают советовать чего то не делать, что я и так не делаю, то начинают говорить, что мол у меня дефекты в логике, то что я чуть что эксель обвиняют не желая даже немного подумать
Ну и зачем это?
Если по существу нечего ответить ну так и вообще говорить ничего не надо
 
извините
не обязательно все обьяснять, особенно когда и один и другой подход (и все остальные) кажутся вполне логичными, некоторые вещи нужно воспринимать как данность: выявили, зафиксировали, пользуемся

за счет вопросов задаваемых здесь я в прошлом месяце узнал, что в многострочном тексбоксе удивительно игнорируются символы перевода каретки их как бы нет в текстбоксе был удивлен, но выявлено, зафиксировано, взято на вооружение (надеюсь вспомню об этой особенности при случае)
и спасибо, надеюсь, сегодняшняя информация тоже отложится)
Изменено: Ігор Гончаренко - 04.05.2021 21:30:46
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Кстати, с ячейкой D5 тоже проблема )
 
Цитата
Юрий М написал:
Кстати, с ячейкой D5 тоже проблема )
Да, верно проблема вообще с примыкающими ячейками (т.е. со всех четырех сторон)

(я не хотел в вопросе увеличивать объем поэтому сосредоточился только на одном варианте который собственно мне и мешал
- ну если кратко для порядка то у меня имеется анализатор листов который помечает проблемные ячейки вот такими диагональными границами, чтобы не менять заливку, или шрифты и прочее - как правило этот эффект с границами не очень заметен ибо большая часть проблемных ячейки исправляются прямо в них, но вот попались варианты исправления когда правильную верхнюю ячейку протягивают по неправильной вот и проявился эффект )
Страницы: 1
Наверх