powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Задать размер ячеек Excel
14 сообщений из 14, страница 1 из 1
Задать размер ячеек Excel
    #33781280
Namik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго Вам времени суток
Уважаемые господа

при наличии времени прошу Вас помочь
мне необходимо програмно
задать размеры всех ячеек листа Excel

высота 10 см ширина 10 см
возможно ли это
и если да
то как

С Уважением и Благодарностью
Намик
...
Рейтинг: 0 / 0
Задать размер ячеек Excel
    #33781697
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Методом научного тыка.
Поменяй размеры ячейки, напечатай, измерь. Поменяй размеры, напечатай измерь.
Повторить для каждого принтера.
...
Рейтинг: 0 / 0
Задать размер ячеек Excel
    #33782444
Ashton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
Public Sub ChangeWidthHeigth()
    Dim ws As Excel.Worksheet
    Dim dblPoints As Double
    Dim dblCurrent As Double
    Dim dblLow As Double
    Dim dblHigh As Double
    Dim intCount As Integer
    
    Set ws = ThisWorkbook.Worksheets("Лист1")

    dblPoints = Application.CentimetersToPoints( 10 )
    
    ' Высоту строки просто установить.
    ws.Cells.RowHeight = dblPoints
    
    ' А вот с шириной столбца уже другая тема.
    dblLow =  0 
    dblHigh =  255 
    intCount =  0 
    
    ws.Cells.ColumnWidth =  127 . 5 
    dblCurrent = ws.Cells.ColumnWidth
    
    While (ws.Cells( 1 ,  1 ).Width <> dblPoints) And (intCount <  20 )
        If ws.Cells( 1 ,  1 ).Width < dblPoints Then
            dblLow = dblCurrent
            ws.Cells.ColumnWidth = (dblCurrent + dblHigh) /  2 
        Else
            dblHigh = dblCurrent
            ws.Cells.ColumnWidth = (dblCurrent + dblLow) /  2 
        End If

        dblCurrent = ws.Cells.ColumnWidth
        intCount = intCount +  1 
    Wend
    
    Set ws = Nothing
End Sub

Использовал материалы статьи:

XL2000: How to Use Macros to Set Row Height and Column Width .

Но, все равно, при печати ячейка не точно 10x10.
...
Рейтинг: 0 / 0
Задать размер ячеек Excel
    #33784582
А у кого 2003 эксель или может уже по свежее есть? Там проблему с размером ячеек в см (мм) так и не решили. А то эти абстрактные размеры в каких-то там символах ужасно раздражают. В ворде же смогли, а чем ексель хуже?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Задать размер ячеек Excel
    #36572282
Фотография svetoch_zorga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Ashton][src vba]Public Sub ChangeWidthHeigth()
.....
.....
.....
Set ws = ThisWorkbook.Worksheets("Лист1")
.....
.....

Подскажите плиз, как сделать чтобы не только на Листе1 работало, а на листах с любым названием??!

заранее благодарен!
:-)
...
Рейтинг: 0 / 0
Задать размер ячеек Excel
    #36572346
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
svetoch_zorga,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Sub tt()

Set ws = ThisWorkbook.Worksheets("Лист1")
MsgBox ws.Name

n =  1 
Set ws = ThisWorkbook.Worksheets( 1 )
MsgBox ws.Name

Set ws = ActiveSheet
MsgBox ws.Name

End Sub
...
Рейтинг: 0 / 0
Задать размер ячеек Excel
    #36572354
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ещё, для комплекта:
Код: plaintext
1.
2.
3.
For Each ws In ThisWorkbook.Worksheets
MsgBox ws.Name
Next
...
Рейтинг: 0 / 0
Задать размер ячеек Excel
    #36573372
Фотография svetoch_zorga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо Вам!

но работа макроса не подразумевает нажатие каких либо кнопок, наверно всетаки можно сделать автоматически..... так, чтобы не было привязки к имени ЛИСТА и без кнопок

Sub Big_Change()
Dim ws As Excel.Worksheet
Dim dblPoints As Double

' вот здесь проблема, лист может называться по разному: "Лист7", "Иванов", "345" итд
Set ws = ThisWorkbook.Worksheets(1)


dblPoints = Application.CentimetersToPoints(0.4)
' высота ячеек
ws.Cells.RowHeight = dblPoints
...
Рейтинг: 0 / 0
Задать размер ячеек Excel
    #36573400
Фотография svetoch_zorga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые, мне всего лишь нужно сжать высоту ячеек сделать их = 0,4
.... может есть другие способы...
...
Рейтинг: 0 / 0
Задать размер ячеек Excel
    #36573413
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
svetoch_zorga,
непонятно. Вы хотите преобразовать конкретный лист, или все листы? Может поместить это код на активацию нужного листа? Правда тогда он будет срабатывать каждый раз при его активации, не проверял - это будет раздражать или пройдёт незаметно...
...
Рейтинг: 0 / 0
Задать размер ячеек Excel
    #36573445
Фотография svetoch_zorga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый Hugo121, мне нужно работать с конкретным листом (но имена листов всегда разные)

приходит много отчетов (одинаковой структуры по горизонтали, отличаются только ветрикальные данные) приходит он в кривом виде, поэтому надо автоматизировать перед распечаткой...

вот весь код, тож немного кривой :-)))

*******************

Sub Big_Change()
Dim ws As Excel.Worksheet
Dim dblPoints As Double

' вот здесь проблема, лист может называться по разному: "Лист7", "Иванов", "345" итд
Set ws = ThisWorkbook.Worksheets(1)


dblPoints = Application.CentimetersToPoints(0.4)
' высота ячеек
ws.Cells.RowHeight = dblPoints
'объединение
Range("A1:J1").Select
With Selection
.MergeCells = True
End With
'color
With Selection.Interior
.ThemeColor = xlThemeColorDark1
.TintAndShade = -0.15
End With
'объединение
Range("A3:I3").Select
With Selection
.MergeCells = True
End With
'color
With Selection.Interior
.ThemeColor = xlThemeColorDark1
.TintAndShade = -0.15
End With

' ширина ячеек
Columns("A:A").ColumnWidth = 0
Columns("B:I").ColumnWidth = 5.5
Columns("J:J").ColumnWidth = 30.14
Columns("K:K").ColumnWidth = 9.57
Columns("B:I").ColumnWidth = 5.5
Columns("L:L").ColumnWidth = 31.43
Columns("M:M").ColumnWidth = 18

'парам.стр
With ActiveSheet.PageSetup
.LeftMargin = Application.InchesToPoints(0.25)
.RightMargin = Application.InchesToPoints(0.25)
.TopMargin = Application.InchesToPoints(0.25)
.BottomMargin = Application.InchesToPoints(0.25)
.HeaderMargin = Application.InchesToPoints(0.25)
.FooterMargin = Application.InchesToPoints(0.25)
End With
' ориентация и просмотр
ActiveSheet.PageSetup.Orientation = xlLandscape
ActiveWindow.SelectedSheets.PrintPreview

End Sub
...
Рейтинг: 0 / 0
Задать размер ячеек Excel
    #36573453
Фотография svetoch_zorga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
код запускается вручную Alt+F8, нужно чтобы он работал независимо от названия кники или листа...

благодарю за помощь!!!
:-)
...
Рейтинг: 0 / 0
Задать размер ячеек Excel
    #36573461
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
svetoch_zorga,

Вникать в детали некогда, но вероятно
Set ws = ActiveSheet
поможет...
Ну а код естественно в другой открытой книге - например PERSONAL.XLS или Книга_С_Избранными_Макросами.xls :)
...
Рейтинг: 0 / 0
Задать размер ячеек Excel
    #36573475
Фотография svetoch_zorga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hugo121, СПАСИБО!!!

ЗАРАБОТАЛООООООООО!!!!
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Задать размер ячеек Excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]