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

Вход

Регистрация

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

 

= Мир MS Excel/Изменение ячейки по формуле и запись результата в нее же - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Изменение ячейки по формуле и запись результата в нее же (Макросы/Sub)
Изменение ячейки по формуле и запись результата в нее же
vusafarov Дата: Среда, 18.06.2014, 17:30 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день форумчане) Возник вопрос по VBA, и никак не могу с ним разобраться. Условно есть 2 столбца, в первый столбец вводится число, после чего во второй столбец вводится процент, и макрос должен после ввода процента произвести расчет и записать значение в первый столбец (пример во вложении).

На просторах интернета наткнулся на такой макрос:

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Target, Range("A:A")) Is Nothing Then Exit Sub
Application.EnableEvents = False
Target = Target + Target * Target.Offset(, 1)
Application.EnableEvents = True
End Sub
[/vba]

Вроде работает, но есть нюанс, срабатывает только если сначала ввести процент, а потом уже число, а необходимо делать обратное- сначала число, потом процент.
К сообщению приложен файл: 8458430.xlsx (9.5 Kb)
 
Ответить
СообщениеДобрый день форумчане) Возник вопрос по VBA, и никак не могу с ним разобраться. Условно есть 2 столбца, в первый столбец вводится число, после чего во второй столбец вводится процент, и макрос должен после ввода процента произвести расчет и записать значение в первый столбец (пример во вложении).

На просторах интернета наткнулся на такой макрос:

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Target, Range("A:A")) Is Nothing Then Exit Sub
Application.EnableEvents = False
Target = Target + Target * Target.Offset(, 1)
Application.EnableEvents = True
End Sub
[/vba]

Вроде работает, но есть нюанс, срабатывает только если сначала ввести процент, а потом уже число, а необходимо делать обратное- сначала число, потом процент.

Автор - vusafarov
Дата добавления - 18.06.2014 в 17:30
RAN Дата: Среда, 18.06.2014, 17:32 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
Target.Offset(,- 1) = Target.Offset(, -1) + Target * Target.Offset(,- 1)
[/vba]

[vba]
Код
If Intersect(Target, Range("B:B")) Is Nothing Then Exit Sub
[/vba]


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Среда, 18.06.2014, 17:34
 
Ответить
Сообщение[vba]
Код
Target.Offset(,- 1) = Target.Offset(, -1) + Target * Target.Offset(,- 1)
[/vba]

[vba]
Код
If Intersect(Target, Range("B:B")) Is Nothing Then Exit Sub
[/vba]

Автор - RAN
Дата добавления - 18.06.2014 в 17:32
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Изменение ячейки по формуле и запись результата в нее же (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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