Съвпадение на височината на реда
Да започнем с малко теория. Ако в клетките на лист в Excel е написан дълъг текст, тогава обикновено се задава пренасяне на редове (разделНачало - групаПодравняване -Пренасяне на текст ), така че текстът да не се разтяга на цял екран, а да се побира в клетката. В този случай височината на клетката също трябва да се промени, за да се покаже цялото съдържание. Ако говорим само за една проста клетка, няма проблеми. Обикновено, за да зададете височината на ред въз основа на съдържанието на клетка, е достатъчно да преместите курсора на мишката в заглавката на реда до границата на реда (курсорът ще приеме формата на стрелки, сочещи в различни посоки - ) и бързо щракнете двукратно върху левия бутон на мишката. Същото може да се направи и за ширините на колоните. Но при обединени клетки този трик не работи - ширината и височината за тези клетки не се избират по този начин, без значение колко щраквания правите, и трябва ръчно да коригирате всяка от тях, така че текстът на клетката да се показва изцяло: Това автоматично побиране не може да се направи със стандартни инструменти, но с VBA - няма проблем. По-долу има функция, която ще ви помогне да регулирате височината и ширината на обединените клетки въз основа на тяхното съдържание.
Сега за това как работи и как да кандидатствате. Първо трябва да вмъкнете горния функционален код в стандартен модул. Самата функция няма да работи - трябва да се извика от друг код, който определя кои клетки да се обработват. Предлагам следния като такъв код:
Sub ChangeRowColHeight() Dim rc As Range Dim bRow As Boolean bRow = (MsgBox("Change row height?", vbQuestion + vbYesNo, "www.excel-vba.ru") = vbYes) 'bRow = True: за промяна на височината на реда 'bRow = False: за промяна на ширината на колоната Application.ScreenUpdating = False За всеки rc вSelection RowColHeightForContent rc, bRow Next Application.ScreenUpdating = True End Sub
Този код също трябва да бъде поставен в стандартен модул. Вече може да бъде извикан от тази работна книга чрез натискане наAlt +F8 и избиране на ChangeRowColHeight или чрез създаване на бутон в листа и присвояване на макрос към него. След това ще бъде достатъчно да изберете диапазон от клетки, сред които има обединени и да извикате макроса ChangeRowColHeight. За всички обединени клетки в избрания диапазон височината или ширината ще бъдат съпоставени. За по-голяма яснота съм приложил пример, в който освен самите кодове има и изрезка от стандартната фактура. Именно в такива документи най-често се срещат подобни инциденти и необходимостта от избор на височина и ширина на обединените клетки. Пример за изтегляне:
Tips_Macro_HeightWidthInMergeCell.xls (64,0 KiB, 1323 изтегляния)
Ако трябва да извършвате такава операция през цялото време, съветвам ви да напишете кодовете в добавката: Как да създадете своя собствена добавка?. Можете да използвате и готовото решение в състав MulTEx - Височина / Ширина на обединената клетка.
Помогна ли статията? Споделете връзката с приятелите си!
Търсене на етикети
Споделете вашето мнение