Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Заполнение диапазона ячеек формулами или значениями. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Заполнение диапазона ячеек формулами или значениями.
SkyPro Дата: Понедельник, 08.07.2013, 00:07 | Сообщение № 1
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
Доброй ночи, уважаемые.
Помогите заполнить диапазон ячеек формулами или значениями полученными в результате вычислений формул (что будет проще и гибче).

Прописывая в макросе заполнение каждой ячейки формулой (одна строчка на ячейку), я запутался уже на второй строке..

Уверен, что есть способ практичнее и короче того, что начал делать я.
Помогите разобраться, пожалуйста.

В вложении более наглядно.
К сообщению приложен файл: primer.xlsm (25.6 Kb)


skypro1111@gmail.com

Сообщение отредактировал SkyPro - Понедельник, 08.07.2013, 00:08
 
Ответить
СообщениеДоброй ночи, уважаемые.
Помогите заполнить диапазон ячеек формулами или значениями полученными в результате вычислений формул (что будет проще и гибче).

Прописывая в макросе заполнение каждой ячейки формулой (одна строчка на ячейку), я запутался уже на второй строке..

Уверен, что есть способ практичнее и короче того, что начал делать я.
Помогите разобраться, пожалуйста.

В вложении более наглядно.

Автор - SkyPro
Дата добавления - 08.07.2013 в 00:07
ShAM Дата: Понедельник, 08.07.2013, 00:40 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1347
Репутация: 249 ±
Замечаний: 0% ±

Excel 2010
Вот так, например:
[vba]
Код
Range("L20:AB20").FormulaLocal = "=СРЗНАЧ(L2:L18)"
[/vba]
можно сразу диапазон L20:AB20 формулами заполнить.
 
Ответить
СообщениеВот так, например:
[vba]
Код
Range("L20:AB20").FormulaLocal = "=СРЗНАЧ(L2:L18)"
[/vba]
можно сразу диапазон L20:AB20 формулами заполнить.

Автор - ShAM
Дата добавления - 08.07.2013 в 00:40
SkyPro Дата: Понедельник, 08.07.2013, 00:56 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
Кол-во строк будет меняться как в меньшую сторону, так и в большую. НАчинать заполнение нужно с Cells(Sheets("Исходный").UsedRange.Rows.Count + 2, 10)


skypro1111@gmail.com
 
Ответить
СообщениеКол-во строк будет меняться как в меньшую сторону, так и в большую. НАчинать заполнение нужно с Cells(Sheets("Исходный").UsedRange.Rows.Count + 2, 10)

Автор - SkyPro
Дата добавления - 08.07.2013 в 00:56
ShAM Дата: Понедельник, 08.07.2013, 01:12 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1347
Репутация: 249 ±
Замечаний: 0% ±

Excel 2010
Можете так использовать:
[vba]
Код
Sub zap()
Dim lCell As Long
     lCell = Cells(Rows.Count, 10).End(xlUp).Row
     Range("L" & lCell + 2 & ":AB" & lCell + 2).FormulaLocal = "=СРЗНАЧ(L2:L" & lCell & ")"
End Sub
[/vba]
 
Ответить
СообщениеМожете так использовать:
[vba]
Код
Sub zap()
Dim lCell As Long
     lCell = Cells(Rows.Count, 10).End(xlUp).Row
     Range("L" & lCell + 2 & ":AB" & lCell + 2).FormulaLocal = "=СРЗНАЧ(L2:L" & lCell & ")"
End Sub
[/vba]

Автор - ShAM
Дата добавления - 08.07.2013 в 01:12
ShAM Дата: Понедельник, 08.07.2013, 01:16 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1347
Репутация: 249 ±
Замечаний: 0% ±

Excel 2010
Даже если как у Вас, то Вы про ЦИКЛЫ не слышали чтоли?
И если у Вас стоит With Sheets("Исходный"), то зачем Sheets("Исходный") столько раз писать?
 
Ответить
СообщениеДаже если как у Вас, то Вы про ЦИКЛЫ не слышали чтоли?
И если у Вас стоит With Sheets("Исходный"), то зачем Sheets("Исходный") столько раз писать?

Автор - ShAM
Дата добавления - 08.07.2013 в 01:16
SkyPro Дата: Понедельник, 08.07.2013, 01:20 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
[vba]
Код

Sub zap()
Dim rCell As Range, Adr As String, kolRow As Long
           With Sheets("Исходный")
                      
                   kolRow = .UsedRange.Rows.Count
                   Adr = .Range(Cells(2, 12), Cells(kolRow, 12)).Address(0, 0)
                   Set rCell = .Cells(kolRow + 2, 10)
                      
                   rCell.Formula = "Середнє значення"
                   rCell.Offset(0, 2).Resize(1, 17).FormulaLocal = "=СРЗНАЧ(" & Adr & ")"
end with
end sub
[/vba]

Вот так попробовал.
Спасибо за помощь. Принцип понятен smile


skypro1111@gmail.com

Сообщение отредактировал SkyPro - Понедельник, 08.07.2013, 01:28
 
Ответить
Сообщение[vba]
Код

Sub zap()
Dim rCell As Range, Adr As String, kolRow As Long
           With Sheets("Исходный")
                      
                   kolRow = .UsedRange.Rows.Count
                   Adr = .Range(Cells(2, 12), Cells(kolRow, 12)).Address(0, 0)
                   Set rCell = .Cells(kolRow + 2, 10)
                      
                   rCell.Formula = "Середнє значення"
                   rCell.Offset(0, 2).Resize(1, 17).FormulaLocal = "=СРЗНАЧ(" & Adr & ")"
end with
end sub
[/vba]

Вот так попробовал.
Спасибо за помощь. Принцип понятен smile

Автор - SkyPro
Дата добавления - 08.07.2013 в 01:20
ShAM Дата: Понедельник, 08.07.2013, 01:35 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1347
Репутация: 249 ±
Замечаний: 0% ±

Excel 2010
Ну, если проблема решена, то все ОК. wink
 
Ответить
СообщениеНу, если проблема решена, то все ОК. wink

Автор - ShAM
Дата добавления - 08.07.2013 в 01:35
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!