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

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

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

С Уважением и Благодарностью
Намик
...
Рейтинг: 0 / 0
08.06.2006, 18:25
    #33781697
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задать размер ячеек Excel
Методом научного тыка.
Поменяй размеры ячейки, напечатай, измерь. Поменяй размеры, напечатай измерь.
Повторить для каждого принтера.
...
Рейтинг: 0 / 0
09.06.2006, 10:09
    #33782444
Ashton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задать размер ячеек Excel
Код: 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
09.06.2006, 22:45
    #33784582
Задать размер ячеек Excel
А у кого 2003 эксель или может уже по свежее есть? Там проблему с размером ячеек в см (мм) так и не решили. А то эти абстрактные размеры в каких-то там символах ужасно раздражают. В ворде же смогли, а чем ексель хуже?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
10.04.2010, 15:44
    #36572282
svetoch_zorga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задать размер ячеек Excel
[quot Ashton][src vba]Public Sub ChangeWidthHeigth()
.....
.....
.....
Set ws = ThisWorkbook.Worksheets("Лист1")
.....
.....

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

заранее благодарен!
:-)
...
Рейтинг: 0 / 0
10.04.2010, 17:48
    #36572346
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задать размер ячеек Excel
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
10.04.2010, 17:58
    #36572354
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задать размер ячеек Excel
ещё, для комплекта:
Код: plaintext
1.
2.
3.
For Each ws In ThisWorkbook.Worksheets
MsgBox ws.Name
Next
...
Рейтинг: 0 / 0
12.04.2010, 09:59
    #36573372
svetoch_zorga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задать размер ячеек Excel
Спасибо Вам!

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

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
12.04.2010, 10:12
    #36573400
svetoch_zorga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задать размер ячеек Excel
Уважаемые, мне всего лишь нужно сжать высоту ячеек сделать их = 0,4
.... может есть другие способы...
...
Рейтинг: 0 / 0
12.04.2010, 10:15
    #36573413
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задать размер ячеек Excel
svetoch_zorga,
непонятно. Вы хотите преобразовать конкретный лист, или все листы? Может поместить это код на активацию нужного листа? Правда тогда он будет срабатывать каждый раз при его активации, не проверял - это будет раздражать или пройдёт незаметно...
...
Рейтинг: 0 / 0
12.04.2010, 10:27
    #36573445
svetoch_zorga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задать размер ячеек Excel
Уважаемый 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
12.04.2010, 10:30
    #36573453
svetoch_zorga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задать размер ячеек Excel
код запускается вручную Alt+F8, нужно чтобы он работал независимо от названия кники или листа...

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

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

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


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