Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Помогите в написании макроса в Excel


Рекомендуемые сообщения

Попробуй так :

 Sub h_m()v1 = [a2]v2 = [a3]s = [d2]Columns(2).ClearContents[b2] = Application.Floor(v1 / 10, 1) * 10i = 2While Cells(i, 2) - s > v2	Cells(i + 1, 2) = Cells(i, 2) - s	i = i + 1WendIf i <> 2 Then Cells(i + 1, 2) = v2End Sub
Ссылка на комментарий
Поделиться на другие сайты

Вот если диапазон чисел юудет от например (55 до -16) то твой код работает, а ели диапазо будет (-55 до 16) нет.

Все условия надо сразу уточнять !

 Sub h_m()v1 = [a2]v2 = [a3]s = [d2]f = 1: If v2 > v1 Then f = -1If f = -1 Then s = -sColumns(2).ClearContentsIf v1 >= 0 Then	[b2] = Application.Floor(v1 / 10, 1) * 10Else	[b2] = -Application.Floor(-v1 / 10, 1) * 10End Ifi = 2While (Cells(i, 2) - s) * f > v2 * f	Cells(i + 1, 2) = Cells(i, 2) - s	i = i + 1WendIf i <> 2 Then Cells(i + 1, 2) = v2End Sub

P.S. -55 округлится к -50 !

Если надо округлить к -60 то

[b2] = -Application.Floor(-v1 / 10, 1) * 10

замени на

[b2] = -Application.Ceiling(-v1 / 10, 1) * 10
Изменено пользователем yuriks
Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...