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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.09.2011, 12:44   #1
Обыватель
Пользователь
 
Регистрация: 21.01.2008
Сообщений: 98
По умолчанию вставка формулы посредством выполнения кода

Добрый день!

Подскажите, пожалуйста, решение.

написал простенький код:

Sub vichetNDS()

Selection = ActiveCell / 1.18

End Sub


Теперь хочу, чтобы в активной ячейке помимо результата была и формула.

Например: = 1000/1,18


Пробовал вот так:

Sub vichetNDS()

Selection = "="&ActiveCell&/1.18

End Sub

не работает ...

Заранее спасибо!
Обыватель вне форума Ответить с цитированием
Старый 19.09.2011, 13:00   #2
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Впишите формулу, она будет вычислять результат.
Например, посчитать сумму без НДС от ячейки слева:
Код:
ActiveCell.FormulaR1C1 = "=RC[-1]/1.18"
Лучше всего ввод формул записывать макрорекордером.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 19.09.2011, 13:05   #3
Обыватель
Пользователь
 
Регистрация: 21.01.2008
Сообщений: 98
По умолчанию

Такой способ мне знаком =) А как можно сделать в одной ячейке?
Попробовал через объявление переменной, но что-то не работает.
Обыватель вне форума Ответить с цитированием
Старый 19.09.2011, 13:08   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

посмотрите перед записью: MsgBox Selection.Address = ActiveCell.Address
ваши Selection и ActiveCell - это случайно не одно и тоже?
разберитесь где данные и куда их надо записать.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 19.09.2011, 13:11   #5
Обыватель
Пользователь
 
Регистрация: 21.01.2008
Сообщений: 98
По умолчанию

Да, это одно и то же.
У меня в ячейке есть значение X, я хочу, чтобы при выполнении кода в той же ячейк появилась формула =X/1.18
Обыватель вне форума Ответить с цитированием
Старый 19.09.2011, 13:19   #6
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

мягко говоря, скромным Ваше желание не назовешь...
как Вы себе все это представляете?
допустим даже Вы записали:
ActiveCell.FormulaR1C1 = "=RC/1.18"
зашли в параметры эксель, включили итеративные вычисления, поставили 1 итерацию.
Отныне у Вас там будет 0.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 19.09.2011, 13:24   #7
Обыватель
Пользователь
 
Регистрация: 21.01.2008
Сообщений: 98
По умолчанию

Мои нескромные пожелания обьясняются скудностью познаний =)
Но идея есть.

Sub vichetNDS()
Selection.Copy
Dim X As Variant
X = содержимое буфера обмена
ActiveCell.FormulaR1C1 = "X/1.18"
End Sub
Как-то так, наверное. Не знаю, как прописать в формуле, что "X" это переменная
Обыватель вне форума Ответить с цитированием
Старый 19.09.2011, 13:52   #8
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

вот с буфера обмена можно данные забрать - это правильная мысль
Код:
  Dim MyData As New DataObject
  MyData.GetFromClipboard
  x = MyData.GetText(1)
  Selection.Formula = "=" & x & "/1.18"
  MyData = Nothing
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 19.09.2011, 13:54   #9
Обыватель
Пользователь
 
Регистрация: 21.01.2008
Сообщений: 98
По умолчанию

Ого! Самостоятельная реализация своей идеи мне пока не позубам. Спасибо за код!
Обыватель вне форума Ответить с цитированием
Старый 19.09.2011, 13:59   #10
Обыватель
Пользователь
 
Регистрация: 21.01.2008
Сообщений: 98
По умолчанию

Ругается на Selection.Formula = "=" & x & "/1.18"
Ошибка № 13
Обыватель вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
время выполнения кода Pein95 Паскаль, Turbo Pascal, PascalABC.NET 1 13.05.2011 23:00
Вставка формулы evdss Microsoft Office Excel 3 25.02.2011 03:38
Форма для выполнения кода segail Microsoft Office Excel 3 16.03.2010 13:28
вставка формулы в ячейку (vba) pride Microsoft Office Excel 5 13.07.2009 09:26
вставка формулы utwer Microsoft Office Excel 18 27.01.2009 23:48