Запись в ячейки

Программирование на Visual Basic for Applications
Катя
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 20.04.2006 (Чт) 13:04

Запись в ячейки

Сообщение Катя » 24.04.2006 (Пн) 11:13

Заранее прошу прошение за вопрос,
искала через поиск, но не нашла ответа.

У меня есть макрос, который в процессе своей работы вносит некоторые данные в таблицу в Excele.
У таблицы все столбцы имееют определенную ширину (при выводе на печать надо уместить все данные на страничке), но при записи значений в таблицу через макрос ширина всех столбцов приводится к стандартной.

Подскажите, пожалуйста, что надо сделать, чтобы ширина столбцов таблицы не менялась?

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 24.04.2006 (Пн) 11:16

Имеющийся код в студию. Телепаты в отпуске.

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 24.04.2006 (Пн) 11:28

Если не разбираться с действующим кодом, то можно последней строкой выполнить команду:

Код: Выделить всё
Columns("A:IV").ColumnWidth=x


где x - ширина колонки в символах (см. хелп по ColumnWidth). Можно вместо ColumnWidth написать просто Width и тогда ширина будет в поинтах.
Быть... или не быть. Вот. В чём вопрос?

Катя
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 20.04.2006 (Чт) 13:04

Сообщение Катя » 24.04.2006 (Пн) 11:28

Приведу часть кода
For j=1 to 32
for i=1 to 44
......
If (pnn1(i, j) = 0) Then
pzp1(i, j) = 0
ActiveCell.Value = pzp1(i, j)
ActiveCell.Offset(0, 1).Select
pbonus1(i, j) = 0
ActiveCell.Value = pbonus1(i, j)
Else
pzp1(i, j) = pzp1(i, j) / pnn1(i, j)
pbonus1(i, j) = pbonus1(i, j) / pnn1(i, j)
ActiveCell.Value = pzp1(i, j)
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = pbonus1(i, j)
End If
......
next i
next j


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

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 24.04.2006 (Пн) 11:30

Код засовывай, пожалуйста, в теги [ code ] (кнопочка такая есть) - тогда он читаться будет нормально.

Приведенный фрагмент кода ничего с шириной столбца не делает. Проблема где-то еще.
Быть... или не быть. Вот. В чём вопрос?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 24.04.2006 (Пн) 11:33

Если у столбца установлена ширина "Авто", то он может подстраивать свою ширину под содержимое ячеек. Укажи конкретное значение для ширины столбца.
Lasciate ogni speranza, voi ch'entrate.

Катя
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 20.04.2006 (Чт) 13:04

Сообщение Катя » 24.04.2006 (Пн) 12:38

Спасибо большое :D , с шириной столбцов я разобралась (прописала ColumnWidth).
Но возник еще один вопрос:
мне надо вывести данные на определленый лист, я задаю имя листа через TextBox, как потом сделать этот лист активным (имя листа хранится в переменной)

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 24.04.2006 (Пн) 12:39

Worksheets(переменная).Activate
Быть... или не быть. Вот. В чём вопрос?


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 27

    TopList