Помощь - Поиск - Пользователи - Календарь
Полная версия: VBA Програмно фиксировать ячейки
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
White
Добрый вечер. Пишу небольшую программу на VBA Excel 2007. Как програмно создавать фиксированные ячейки и области? То есть, у меня есть шапка и я хочу её переносит на другой лист при нажатии на кнопку ...

Set List = Sheets.Add
On Error GoTo errh
tryagain:
sheetname = TextBox1
List.Name = sheetname
Exit Sub
errh:
If Err.Number = 1004 Then Resume tryagain

Worksheets(sheetname).Range("A1").Value = TextBox2

IUnknown
Копируй и переноси как обычно:

Код
    Dim NewSheet As Worksheet
    
    sheetname = "Sheet4" ' Тут любым образом получаешь имя нового листа
    Set NewSheet = Sheets.Add
    NewSheet.Name = sheetname
    
    Sheets("Sheet1").Select ' Отсюда будем копировать
    Range("A1:E2").Select ' Размер копируемой области тебе известен
    Selection.Copy
    Sheets(sheetname).Select
    Range("A1:E2").Select
    ActiveSheet.Paste
    Range("F3").Select ' выбираешь ячейку на одну ниже и левее чем скопированная область
    ActiveWindow.FreezePanes = True ' а вот теперь фиксируешь область
Не знаю, как на 2007, но на 2002/2003 это прекрасно работает
White
Спасибо. Работает give_rose.gif
White
Только вот в чем проблема. В случаи если лист удалят то шапки на новом не будит. То есть. у меня есть тип материалов (ввожу с формы название и формирую листы приходная накладная (2 вида шапок из ComboBox выбирается пользователем), расходная накладная (3 вида шапок из ComboBox выбирается пользователем ), журнал и счета ). Типов материалов может быть очень много и данных в журнале тоже. По этому нужно фиксировать область с шапкой программно....
IUnknown
Цитата
По этому нужно фиксировать область с шапкой программно....
Объясни мне, чего ты привязалась к этому фиксированию области? Фиксирование делается для того, чтобы при прокрутке шапка висела на одном и том же месте, а не прокручивалась вверх. Всё, на этом функция фиксирования заканчивается. Удалить можно любой лист, что с фиксированной, что с нефиксированной шапкой. Кстати,
Код
ActiveWindow.FreezePanes = True
это что, аппаратное фиксирование? Не программное? smile.gif

В крайнем случае, если ты можешь делать то, что нужно НЕпрограммно (руками) - то поставь макрос на запись, сделай нужные действия, и посмотри, как выглядит код. Подпилишь и используй...
White
Привязалась потому что в таблице с журналом более 10 полей таких как Серийный номер (заводской) ,Знак маркирования ФСТЭК и.т.д
сам журнал(журналы) будит содержать очень большое количество записей , листать вверх и смотреть
что это за номер и что это за поле долго и не удобно (по пол минуты уходит).
White

Изображение
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.