Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.07.2010, 12:06   #11
аналитика
Форумчанин
 
Регистрация: 14.05.2009
Сообщений: 311
По умолчанию

т.е. диапазон в столбце K "дырявый"?
если да, то так вот поменяй
Код:
lr = .Range("K" & cells.rows.count).End(xlUp).Row
аналитика вне форума Ответить с цитированием
Старый 21.07.2010, 12:09   #12
lecko
Пользователь
 
Регистрация: 20.07.2010
Сообщений: 43
По умолчанию

очень вам благодарен товарищ аналитика
lecko вне форума Ответить с цитированием
Старый 27.07.2010, 15:28   #13
lecko
Пользователь
 
Регистрация: 20.07.2010
Сообщений: 43
По умолчанию

Чтобы полностю закрыть тему, задам похожый вопрос:
как создать шаблон строки? Шаблон столбца вы показали мне как сделать
lecko вне форума Ответить с цитированием
Старый 27.07.2010, 15:57   #14
аналитика
Форумчанин
 
Регистрация: 14.05.2009
Сообщений: 311
По умолчанию

Код:
Private Sub Workbook_NewSheet(ByVal Sh As Object)
   Dim lc As Integer
   
   With Sheets(Sheets.Count - 1)
'      lc = .Range("B10").End(xlToRight).Column ' если непрерывный диапазон
      lc = .Cells(10, Cells.Columns.Count).End(xlToLeft).Column 'дырявый
      Range(.Cells(10, 2), .Cells(10, lc)).Copy Range("B2")
   End With
End Sub
аналитика вне форума Ответить с цитированием
Старый 28.07.2010, 13:03   #15
lecko
Пользователь
 
Регистрация: 20.07.2010
Сообщений: 43
По умолчанию

Тема не закрыта! Я что то сообразил, но у меня не все так хорошо. Вот код:
Код:
Private Sub Workbook_NewSheet(ByVal Sh As Object)
   Dim lc As Integer
   
   With Sheets(Sheets.Count - 1)
      lc = .Range("A1").End(xlToRight).Column
            Range(.Cells(1, 1), .Cells(2, lc)).Copy Range("A1")
   End With
   
   With Sheets(Sheets.Count - 1)
      lc = .Range("A37").End(xlToRight).Column
            Range(.Cells(1, 1), .Cells(1, lc)).Copy Range("A37")
   End With
   With Sheets(Sheets.Count - 1)
      lc = .Range("A38").End(xlToRight).Column
            Range(.Cells(1, 1), .Cells(1, lc)).Copy Range("A38")
   End With
    With Sheets(Sheets.Count - 1)
      lr = .Range("M" & Cells.Rows.Count).End(xlUp).Row
      .Range("M3:M" & lr).Copy Range("C3")
   End With
    With Sheets(Sheets.Count - 1)
      lr = .Range("A" & Cells.Rows.Count).End(xlUp).Row
      .Range("A3:A" & lr).Copy Range("A3")
   End With
    With Sheets(Sheets.Count - 1)
      lr = .Range("B" & Cells.Rows.Count).End(xlUp).Row
      .Range("B3:B" & lr).Copy Range("B3")
   End With
End Sub
Дело в том что ваш вариант копирует формулу, а я хочу чтобы скопировалоь значение. Понимаете меня?
А вот прикрепленный файл:
Вложения
Тип файла: rar Книга2.rar (11.7 Кб, 10 просмотров)

Последний раз редактировалось lecko; 28.07.2010 в 13:42.
lecko вне форума Ответить с цитированием
Старый 28.07.2010, 14:08   #16
аналитика
Форумчанин
 
Регистрация: 14.05.2009
Сообщений: 311
По умолчанию

Код:
Посту-
пило
так что, критично?
может в одной строке сделать?
аналитика вне форума Ответить с цитированием
Старый 28.07.2010, 14:17   #17
lecko
Пользователь
 
Регистрация: 20.07.2010
Сообщений: 43
По умолчанию

Можно. Кстати это супутный вопрос. Как сделать перенос слова в одной ячейке?
Чудесно.
А что ты скажеш про вставку не формулы, а значения?

Последний раз редактировалось lecko; 28.07.2010 в 14:34.
lecko вне форума Ответить с цитированием
Старый 28.07.2010, 14:23   #18
аналитика
Форумчанин
 
Регистрация: 14.05.2009
Сообщений: 311
По умолчанию

Alt + Enter
аналитика вне форума Ответить с цитированием
Старый 28.07.2010, 14:54   #19
аналитика
Форумчанин
 
Регистрация: 14.05.2009
Сообщений: 311
По умолчанию

в новом листе формулу прописывает
Код:
Private Sub Workbook_NewSheet(ByVal Sh As Object)
   Dim lc As Integer
   Dim lr As Long

   With Sheets(Sheets.Count - 1)
      lc = .Range("A1").End(xlToRight).Column   'последний столбец у тебя один на всех
      Range(.Cells(1, 1), .Cells(2, lc)).Copy Range("A1")  '2 строки 1-го заголовка
      Range(.Cells(1, 1), .Cells(2, lc)).Copy Range("A37")   '2 строки 2-го заголовка

      lr = .Range("A" & Cells.Rows.Count).End(xlUp).Row   'последняя строка тоже одна
      .Range("A3:B" & lr).Copy Range("A3")   'оба столбца берем

      .Range("M3:M" & lr).Copy
      Range("C3").PasteSpecial Paste:=xlPasteValues
      Range("C3").PasteSpecial Paste:=xlPasteFormats
   End With

   Range("M3:M" & lr).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=RC[-10]+RC[-7]+RC[-3]"
   Cells.EntireColumn.AutoFit
   Range("A1").Select
End Sub
аналитика вне форума Ответить с цитированием
Старый 28.07.2010, 15:15   #20
lecko
Пользователь
 
Регистрация: 20.07.2010
Сообщений: 43
По умолчанию

ИДЕАЛЬНО! Тема закрыта.
Спасибо
lecko вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание листа с одновременным созданием формулы на ячейку нового листа ShamanK Microsoft Office Excel 4 02.05.2010 22:00
Простая тема)_создание нового листа женя2010 Microsoft Office Excel 2 21.04.2010 17:21
При создании нового листа программно поставить на него защиту (с помощью VBA) Lis000iq Microsoft Office Excel 2 30.06.2009 18:41
Вставка нового листа. tae1980 Microsoft Office Excel 3 05.02.2009 05:18
создание нового листа cathie Microsoft Office Excel 2 12.12.2007 15:49