Имеется файл (во вложении), в котором в ячейке A1 "текст" - 01.001.001.01 разного размера. А именно: 01.001 - Calibri 26, a .001.01 - Calibri 42.
Есть ли некий макрос, или как можно разом все ячейки листа заставить быть похожими на ячейку А1 (без чета цвета, просто имея разно-размерность текста внутри одной ячейки)
Заранее благодарю!
Товарищи, приветствую,
Имеется файл (во вложении), в котором в ячейке A1 "текст" - 01.001.001.01 разного размера. А именно: 01.001 - Calibri 26, a .001.01 - Calibri 42.
Есть ли некий макрос, или как можно разом все ячейки листа заставить быть похожими на ячейку А1 (без чета цвета, просто имея разно-размерность текста внутри одной ячейки)
некий макрос, или как можно разом все ячейки листа заставить быть похожими на ячейку А1
[vba]
Код
Sub Макрос1() Dim MainCell As Range, Cell As Range, n% Set MainCell = Range("A1")
For Each Cell In ActiveSheet.UsedRange If Cell.Address = MainCell.Address Then n = 0 Else n = IIf(Len(MainCell) >= Len(Cell), Len(Cell), Len(MainCell)) For i = 1 To n Cell.Characters(Start:=i, Length:=1).Font.Name = MainCell.Characters(Start:=i, Length:=1).Font.Name Cell.Characters(Start:=i, Length:=1).Font.Size = MainCell.Characters(Start:=i, Length:=1).Font.Size Next Next End Sub
некий макрос, или как можно разом все ячейки листа заставить быть похожими на ячейку А1
[vba]
Код
Sub Макрос1() Dim MainCell As Range, Cell As Range, n% Set MainCell = Range("A1")
For Each Cell In ActiveSheet.UsedRange If Cell.Address = MainCell.Address Then n = 0 Else n = IIf(Len(MainCell) >= Len(Cell), Len(Cell), Len(MainCell)) For i = 1 To n Cell.Characters(Start:=i, Length:=1).Font.Name = MainCell.Characters(Start:=i, Length:=1).Font.Name Cell.Characters(Start:=i, Length:=1).Font.Size = MainCell.Characters(Start:=i, Length:=1).Font.Size Next Next End Sub
Если без учета цвета заливки, цвета текста, выравнивания, жирности, подчеркивания, ..., в общем, все форматирование оставить, а только размер поменять, то придется пробегаться циклом по каждой ячейке Если конкретно
То можно не морочить голову со считыванием размера и названия шрифта из А1, а просто написать вот так [vba]
Код
Sub PerenosRazm() Dim d_ As Range, d0_ As Range Set d_ = Range(Range("A1"), Range("A1").SpecialCells(xlLastCell)) For Each d0_ In d_ With d0_ .Font.Name = "Calibri" .Characters(Start:=1, Length:=6).Font.Size = 26 .Characters(Start:=7, Length:=7).Font.Size = 42 End With Next d0_ End Sub
[/vba] *Если в ячейке А1 сломается формат, то просто запустите этот макрос еще раз
Если без учета цвета заливки, цвета текста, выравнивания, жирности, подчеркивания, ..., в общем, все форматирование оставить, а только размер поменять, то придется пробегаться циклом по каждой ячейке Если конкретно
То можно не морочить голову со считыванием размера и названия шрифта из А1, а просто написать вот так [vba]
Код
Sub PerenosRazm() Dim d_ As Range, d0_ As Range Set d_ = Range(Range("A1"), Range("A1").SpecialCells(xlLastCell)) For Each d0_ In d_ With d0_ .Font.Name = "Calibri" .Characters(Start:=1, Length:=6).Font.Size = 26 .Characters(Start:=7, Length:=7).Font.Size = 42 End With Next d0_ End Sub
[/vba] *Если в ячейке А1 сломается формат, то просто запустите этот макрос еще раз_Boroda_
For Each cell In ActiveSheet.UsedRange cell.Characters(Start:=1, Length:=6).Font.Size = 26 cell.Characters(Start:=7, Length:=7).Font.Size = 42 Next cell
End Sub
[/vba]
[vba]
Код
Sub Макрос3()
Dim cell As Range
For Each cell In ActiveSheet.UsedRange cell.Characters(Start:=1, Length:=6).Font.Size = 26 cell.Characters(Start:=7, Length:=7).Font.Size = 42 Next cell
Если без учета цвета заливки, цвета текста, выравнивания, жирности, подчеркивания, ..., в общем, все форматирование оставить, а только размер поменять, то придется пробегаться циклом по каждой ячейке
Спасибо большое ребята!
Все получилось.
А можно поинтересоваться, для саморазвития, а если бы мне хотелось еще и учесть цвет залики, цвет текста, выравнивания, жирности, подчеркивания..... как в комментарии Boroda, то как бы изменился макрос?
Ну т.е. если бы задача была: как можно разом все ячейки листа заставить быть похожими на ячейку А1, с учетом всех форматирований этой ячейки
Если без учета цвета заливки, цвета текста, выравнивания, жирности, подчеркивания, ..., в общем, все форматирование оставить, а только размер поменять, то придется пробегаться циклом по каждой ячейке
Спасибо большое ребята!
Все получилось.
А можно поинтересоваться, для саморазвития, а если бы мне хотелось еще и учесть цвет залики, цвет текста, выравнивания, жирности, подчеркивания..... как в комментарии Boroda, то как бы изменился макрос?
Ну т.е. если бы задача была: как можно разом все ячейки листа заставить быть похожими на ячейку А1, с учетом всех форматирований этой ячейкиbagraart
еще и учесть цвет залики, цвет текста, выравнивания, жирности, подчеркивания...
[vba]
Код
Sub Макрос1() Dim MainCell As Range, Cell As Range, n% Set MainCell = Range("A1") 'скопировать формат ячейки целиком: MainCell.Copy ActiveSheet.UsedRange.PasteSpecial xlPasteFormats 'Применить посимвольный формат For Each Cell In ActiveSheet.UsedRange If Cell.Address = MainCell.Address Then n = 0 Else n = IIf(Len(MainCell) >= Len(Cell), Len(Cell), Len(MainCell)) For i = 1 To n
еще и учесть цвет залики, цвет текста, выравнивания, жирности, подчеркивания...
[vba]
Код
Sub Макрос1() Dim MainCell As Range, Cell As Range, n% Set MainCell = Range("A1") 'скопировать формат ячейки целиком: MainCell.Copy ActiveSheet.UsedRange.PasteSpecial xlPasteFormats 'Применить посимвольный формат For Each Cell In ActiveSheet.UsedRange If Cell.Address = MainCell.Address Then n = 0 Else n = IIf(Len(MainCell) >= Len(Cell), Len(Cell), Len(MainCell)) For i = 1 To n