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

Вход

Регистрация

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

 

= Мир MS Excel/Макрос для подбора значений работает некорректно - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос для подбора значений работает некорректно (Макросы/Sub)
Макрос для подбора значений работает некорректно
VadimMakh Дата: Четверг, 01.10.2020, 08:42 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Добрый день, уважаемые форумчане! В нескольких словах: есть макрос для подбора значений в ячейке Х, чтобы целевая ячейка была равна определенному значению.
[vba]
Код
Sub Расчет()
Application.ScreenUpdating = False
    X = Range("B3")
    Range("B7").GoalSeek Goal:=X, ChangingCell:=Range("B5")
If Not [B5] = 0 Then
    With Range("B5").Interior
        .Color = RGB(255, 79, 79)
    End With
End If
If [B5] = 0 Then
    With Range("B5").Interior
        .Color = xlNone
    End With
End If
Application.ScreenUpdating = True
End Sub
[/vba]

Но возникает проблема, в некоторых случаях, когда макрос должен подобрать 0, он вносит в ячейку значение в формате -2,15Е-15 (например). Как от этого можно избавиться? Нужно, чтобы отображался именно ноль. Спасибо!

P.S.Файл примера прикрепил.
К сообщению приложен файл: 8082691.xlsm(16.1 Kb)
 
Ответить
СообщениеДобрый день, уважаемые форумчане! В нескольких словах: есть макрос для подбора значений в ячейке Х, чтобы целевая ячейка была равна определенному значению.
[vba]
Код
Sub Расчет()
Application.ScreenUpdating = False
    X = Range("B3")
    Range("B7").GoalSeek Goal:=X, ChangingCell:=Range("B5")
If Not [B5] = 0 Then
    With Range("B5").Interior
        .Color = RGB(255, 79, 79)
    End With
End If
If [B5] = 0 Then
    With Range("B5").Interior
        .Color = xlNone
    End With
End If
Application.ScreenUpdating = True
End Sub
[/vba]

Но возникает проблема, в некоторых случаях, когда макрос должен подобрать 0, он вносит в ячейку значение в формате -2,15Е-15 (например). Как от этого можно избавиться? Нужно, чтобы отображался именно ноль. Спасибо!

P.S.Файл примера прикрепил.

Автор - VadimMakh
Дата добавления - 01.10.2020 в 08:42
Pelena Дата: Четверг, 01.10.2020, 08:55 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16655
Репутация: 3600 ±
Замечаний: ±

Excel 2010, 2016 & Mac Excel
Здравствуйте.
чтобы отображался именно ноль
чтобы именно отображался, поставьте в В5 числовой формат


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеЗдравствуйте.
чтобы отображался именно ноль
чтобы именно отображался, поставьте в В5 числовой формат

Автор - Pelena
Дата добавления - 01.10.2020 в 08:55
VadimMakh Дата: Четверг, 01.10.2020, 08:58 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Эмм...теперь мне очень стыдно. <_<
Спасибо большое! :D


Сообщение отредактировал VadimMakh - Четверг, 01.10.2020, 15:41
 
Ответить
СообщениеЭмм...теперь мне очень стыдно. <_<
Спасибо большое! :D

Автор - VadimMakh
Дата добавления - 01.10.2020 в 08:58
VadimMakh Дата: Четверг, 01.10.2020, 14:48 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Pelena, подскажите еще, пожалуйста: возможно ли сделать так, чтобы ссылки, которые использованы в коде, быль относительными?

И еще
чтобы именно отображался

Да, отображается ноль, еще нужно, чтобы считался он тоже как ноль. Я использовал округление:
[vba]
Код
[B5].Value = CInt(Fix([B5].Value * 100)) / 100
[/vba]
А можно ли это сделать как-то по-другому?


Сообщение отредактировал VadimMakh - Четверг, 01.10.2020, 14:54
 
Ответить
СообщениеPelena, подскажите еще, пожалуйста: возможно ли сделать так, чтобы ссылки, которые использованы в коде, быль относительными?

И еще
чтобы именно отображался

Да, отображается ноль, еще нужно, чтобы считался он тоже как ноль. Я использовал округление:
[vba]
Код
[B5].Value = CInt(Fix([B5].Value * 100)) / 100
[/vba]
А можно ли это сделать как-то по-другому?

Автор - VadimMakh
Дата добавления - 01.10.2020 в 14:48
Pelena Дата: Четверг, 01.10.2020, 16:11 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 16655
Репутация: 3600 ±
Замечаний: ±

Excel 2010, 2016 & Mac Excel
Можно так, если правильно поняла
[vba]
Код
Round([B5].Value, 0)
[/vba]


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеМожно так, если правильно поняла
[vba]
Код
Round([B5].Value, 0)
[/vba]

Автор - Pelena
Дата добавления - 01.10.2020 в 16:11
VadimMakh Дата: Четверг, 01.10.2020, 16:42 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Pelena, спасибо большое за помощь!)
 
Ответить
СообщениеPelena, спасибо большое за помощь!)

Автор - VadimMakh
Дата добавления - 01.10.2020 в 16:42
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос для подбора значений работает некорректно (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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