Гость
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Макрос в Excel / 13 сообщений из 13, страница 1 из 1
14.01.2017, 21:24
    #39384814
Макрос в Excel
Добрый вечер!
Ребят, я раньше не сталкивалась вообще с такими задачами. Не могу понять где наделала ошибок.
Изначально нужно было сделать в Excel: Даны три переменные вещественного типа: A, B, C. Если их значения упорядочены по возрастанию, то удвоить их; в противном случае заменить значение каждой переменной на противоположное. Вывести новые значения переменных A, B, C в ячейки.

Вот это я смогла "наваять":
Sub Макрос1()
'
' Макрос1 Макрос
'
' Сочетание клавиш: Ctrl+1
'
If ((A1 < A2) And (A2 < A3)) Then
Let B1 = A1 * 2
Let B2 = A2 * 2
Let B3 = A3 * 2
Else
Let B1 = A1 * (-1)
Let B2 = A2 * (-1)
Let B3 = A3 * (-1)
End If

End Sub

В итоге макрос не срабатывает((((
...
Рейтинг: 0 / 0
14.01.2017, 21:28
    #39384817
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос в Excel
Наталия БезфамильнаяВ итоге макрос не срабатывает((((
я не вижу, где переменным а1,а2,а3 присвоены значения
...
Рейтинг: 0 / 0
14.01.2017, 21:30
    #39384818
Макрос в Excel
ПЕНСИОНЕРКА,

А разве не в ячейках уже вводятся значения? Это еще и в коде должно быть указано?
...
Рейтинг: 0 / 0
14.01.2017, 21:34
    #39384820
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос в Excel
Наталия Безфамильная,

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
sub пускач_функции()
 Макрос1 5,7,12
Макрос1 5,17,12

end sub

Sub Макрос1(a1,a2,a3)
'
' Макрос1 Макрос
'
' Сочетание клавиш: Ctrl+1

debug.print "a1=",a1,"a2=",a2,"a3=",a3
If ((A1 < A2) And (A2 < A3)) Then
Let B1 = A1 * 2
Let B2 = A2 * 2
Let B3 = A3 * 2
debug.print " данные упорядочены"
Else
Let B1 = A1 * (-1)
Let B2 = A2 * (-1)
Let B3 = A3 * (-1)
debug.print " данные неупорядочены"
End If

End Sub
...
Рейтинг: 0 / 0
14.01.2017, 21:37
    #39384822
Макрос в Excel
ПЕНСИОНЕРКА,

Спасибо огромное! Я тормоз)))))
...
Рейтинг: 0 / 0
14.01.2017, 21:38
    #39384823
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос в Excel
Наталия БезфамильнаяПЕНСИОНЕРКА,

А разве не в ячейках уже вводятся значения? Это еще и в коде должно быть указано?

тогда , где у вас обращение к ячейкам --тоже не вижу
...
Рейтинг: 0 / 0
14.01.2017, 22:18
    #39384837
Макрос в Excel
ПЕНСИОНЕРКА,

Как в макросе прописать обращение к ячейке? Чем больше я читаю методичку и копаюсь на сайтах, тем меньше понимаю, что мне нужно сделать
...
Рейтинг: 0 / 0
14.01.2017, 22:27
    #39384841
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос в Excel
Наталия Безфамильная,

Как мне оформить свое сообщение?
...
Рейтинг: 0 / 0
14.01.2017, 22:50
    #39384848
Макрос в Excel
Sub Ìàêðîñ5()
'
' Ìàêðîñ5 Ìàêðîñ
'
' Ñî÷åòàíèå êëàâèø: Ctrl+g
'
Range("B1").Select
ActiveCell.FormulaR1C1 = _
"=IF(AND(RC[-1]<R[1]C[-1],R[1]C[-1]<R[2]C[-1]),(RC[-1]*2),(RC[-1]*(-1)))"
Range("B1").Select
Selection.AutoFill Destination:=Range("B1:B3"), Type:=xlFillDefault
Range("B1:B3").Select
Range("B2").Select
ActiveCell.FormulaR1C1 = _
"=IF(AND(R[-1]C[-1]<RC[-1],RC[-1]<R[1]C[-1]),(RC[-1]*2),(RC[-1]*(-1)))"
Range("B3").Select
ActiveCell.FormulaR1C1 = _
"=IF(AND(R[-2]C[-1]<R[-1]C[-1],R[-2]C[-1]<R[-1]C[-1]),(RC[-1]*2),(RC[-1]*(-1)))"
Range("B4").Select
End Sub
...
Рейтинг: 0 / 0
14.01.2017, 22:51
    #39384849
Макрос в Excel
Этот вариант правильный?
...
Рейтинг: 0 / 0
14.01.2017, 23:05
    #39384854
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос в Excel
Наталия Безфамильная, тогда уж так :)
Код: vbnet
1.
2.
3.
4.
5.
6.
Sub Na()
With Range("B1:B3")
  .FormulaArray = "=IF(AND(A2:A3>=A1:A2),A1:A3*2,-A1:A3)"
  .Value = .Value
End With
End Sub
...
Рейтинг: 0 / 0
14.01.2017, 23:10
    #39384855
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос в Excel
более короткие варианты формулы
Код: vbnet
1.
2.
  .FormulaArray = "=A1:A3*IF(AND(A2:A3>=A1:A2),2,-1)"
  .FormulaArray = "=A1:A3*(AND(A2:A3>=A1:A2)*3-1)"
...
Рейтинг: 0 / 0
15.01.2017, 01:01
    #39384887
Макрос в Excel
Казанский, спасибо огромное!
Следующую аналогичную задачу уже нормально решу.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Макрос в Excel / 13 сообщений из 13, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]