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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2010, 18:10   #1
postrelll
Новичок
Джуниор
 
Регистрация: 31.05.2010
Сообщений: 2
Злость Проблема макросов и формул

Здравствуйте, дорогие форумчане VBAшники. Появилась небольшая проблема - не знаю как можно с помощью макроса задавать конкретной ячейке формулу. Например, я в своем макросе делаю расчет процентов по формуле (Сумма затрат/Стоимость конкретной статьи расходов) %. Я делаю цикл, в котором нужной ячейке присваиваю значение этой формулы. Но, я использую строковый тип данных для этого, макрос ругается на Run-Time error 1004. То есть я не могу в макросе присвоить ячейке значение являюшееся формулой, например, Range("A1")= "=B2+B3". Как быть?
Заранее спасибо
PS на всякий случай привожу свой код
Код:
Sub Svodnie_percentages()
Dim i As Integer
Dim bufer As String, first_part As String, second_part as String
Dim counter As Integer

second_part = "ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ(" & Chr(34) & "Значение" & Chr(34) & ";$A$3;" & Chr(34) & "Столбец" & Chr(34) & ";" & Chr(34) & "Стоимость" & Chr(34) & ")"

counter = Range("C" & Rows.Count).End(xlUp).Row

For i = 5 To counter - 1
bufer = Range("A" & i)
first_part = "=ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ(" & Chr(34) & "Значение" & Chr(34) & ";Сводные!$A$3;" & Chr(34) & "Строка" & Chr(34) & ";" & _
            Chr(34) & bufer & Chr(34) & ";" & Chr(34) & "Столбец" & Chr(34) & ";" & Chr(34) & "Стоимость" & Chr(34) & ")/"
    
    Range("D" & i).Value = first_part & second_part
    Next i
  

End Sub
postrelll вне форума Ответить с цитированием
Старый 31.05.2010, 18:19   #2
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

А Вы попробуйте записать так:
Код:
Range("D" & i).FormulaLocal = first_part & second_part
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 31.05.2010, 18:59   #3
postrelll
Новичок
Джуниор
 
Регистрация: 31.05.2010
Сообщений: 2
По умолчанию

Спасибо, как раз сам нашел этот вариант. Но работает немного другой вариант
Код:
Range("D" & i).FormulaLocal = "=" & first_part & second_part
postrelll вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программирование макросов stasbz Фриланс 10 22.11.2014 08:48
Создание макросов Женечка2607 Microsoft Office Excel 3 23.04.2009 21:17
Автоматический запуск макросов с листа на котором указан перечень макросов с параметрами и без Neoli Microsoft Office Excel 2 09.03.2009 14:31
Сравнение макросов valerij Microsoft Office Excel 24 09.06.2008 00:57