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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.08.2010, 10:34   #1
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию Переменная в формуле кода VBA

Здравствуйте, уважаемые!
Вот возник вопрос, как можно прописать переменную в такой формуле
Код:
Range("g" & iRow).FormulaLocal = "=СУММ(f11:f58)"
Мне нужно, чтобы вместо f58 формуле прописалось f & iRow, только вот что-то не получается.
И формул такого типа много будет, подскажите, как правильно это написать.
Спасибо.
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 30.08.2010, 10:53   #2
nilem
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 616
По умолчанию

Можно так
Код:
Sub ssf()
Dim adr As String, iRow As Long
iRow = 15
adr = "F11:F" & iRow
Cells(iRow, 7).FormulaLocal = "=СУММ(" & adr & ")"
End Sub
Может лучше в макросе просуммировать?
nilem вне форума Ответить с цитированием
Старый 30.08.2010, 11:01   #3
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

nilem спасибо, попробую.
Цитата:
Может лучше в макросе просуммировать?
Да нет, так не получится, формула динамическая. А макрос просто обновляет и восстанавливает все формулы на листе. После действий пользователей))
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 30.08.2010, 11:03   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Виктор, прикалываемся?
Range("g" & iRow).FormulaLocal = "=СУММ(f11:f" & iRow & ")"
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 30.08.2010, 11:10   #5
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

IgorGO Спасибо большое!!!
Цитата:
Виктор, прикалываемся?
Совсем затупил видимо...
Говорила мне мама -учи синтаксис!))
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 30.08.2010, 11:35   #6
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Проще писать формулу сразу во все ячейки:
Код:
Range("g11:g58").FormulaR1C1Local = "=СУММ(r11c6:rc6)"
EducatedFool вне форума Ответить с цитированием
Старый 30.08.2010, 11:39   #7
аналитика
Форумчанин
 
Регистрация: 14.05.2009
Сообщений: 311
По умолчанию

может формулу скопом вставлять, напр.
Код:
    Range("G1:G10").FormulaLocal = "=СУММ(F1:$F$11)"
'    Range("G1:G10").FormulaR1C1 = "=SUM(RC[-1]:R11C6)"
аналитика вне форума Ответить с цитированием
Старый 30.08.2010, 11:53   #8
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Всем спасибо.
Без переменной формула в коде выглядела так:
Код:
Range("g58").FormulaLocal = "=СУММ(f11:f58)"
И совет IgorGO помог справиться с это "проблемой" )
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 30.08.2010, 12:24   #9
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
А макрос просто обновляет и восстанавливает все формулы на листе. После действий пользователей
А может лучше не давать пользователям "портить" ячейки с формулами?
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 30.08.2010, 12:29   #10
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
А может лучше не давать пользователям "портить" ячейки с формулами?
Лучше конечно, что и делаю. Это просто частный случай.
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VBA Excel: cоздать 4 кода к блок-схемам lena-88 Помощь студентам 1 13.02.2010 20:13
Остановка выполнения кода и продолжение с того же места в VBA Access Landurik Microsoft Office Access 6 02.11.2009 14:20
Построения оптимального кода. По формуле Хаффмена didar_ Паскаль, Turbo Pascal, PascalABC.NET 2 22.04.2009 19:09
Перевод программного кода из VBA в VB (6.0) zxspec Помощь студентам 2 05.02.2009 00:39
ПРОБЛЕМА с заменой символов в ячейке с помощью кода VBA Maxx Microsoft Office Excel 5 11.11.2008 16:42