Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
5 / 5 / 0
Регистрация: 13.12.2009
Сообщений: 206
1

текст больше чем число

31.07.2013, 19:04. Показов 1534. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет!

Проблема внезапная исподтишка меня встретила...

в моем коде много сравнений ячеек с числами между друг другом.
Однако при определенных обстоятельствах значения в них могут поменяться на текстовое "цены нет"
и вот этот вот текст больше(!) чем число... и из-за этого всё летит в тартарары

как обойти эту проблему?
вписывать в каждую строку "если ячейка не текстовая, то" - это же смерть
тем более что расчет должен продолжиться даже если ячейка с текстом (нужно чтоб текст был всегда меньше чем число и дело в шляпе)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.07.2013, 19:04
Ответы с готовыми решениями:

Поиск чисел значение которых больше чем другое число
Существует EXCEL в которой есть таблица: в 1 столбце ФИО второй столбец сумма Нужно найти и...

Создать программу, которая найдет наименьшее число, который взаимное простое число с 60 и больше, чем введенное число
Создать программу, которая найдет наименьшее число, который взаимное простое число с 60 и больше,...

Будет ли число десятков больше, чем число едениц в 2 раза
1. В двузначном числе определить : будет ли число десятков больше, чем число едениц в 2 раза 2....

При каком наименьшем n число конечных частей может оказаться больше, чем число бесконечных?
На плоскости проводят n прямых, делящих плоскость на некоторое число конечных и бесконечных частей.

3
749 / 460 / 50
Регистрация: 13.05.2012
Сообщений: 958
31.07.2013, 19:14 2
вне зависимости от значения число всегда считается меньшим, чем строка.
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,640
Записей в блоге: 13
31.07.2013, 20:51 3
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от Iater Посмотреть сообщение
(нужно чтоб текст был всегда меньше чем число и дело в шляпе)
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Function compCells(c1 as range, c2 as range) as integer
    If isNumeric(c1.value) And isNumeric(c2.value) then
       if (c1.Value = c2.Value) then
          compCells=0
       elseIf c1.Value > c2.Value then
          compCells=1
       else
          compCells=-1
       end if
    ElseIf isNumeric(c1.Value) then
       compCells=1
    ElseIf isNumeric(c2.Value) then
       compCells=-1
    Else
       compCells=0
    End if  
End Function
Эта функция принимает две ячейки и возвращает:

1 если значение первой больше
0 если значения равны (все тексты равны друг другу)
-1 если значение первой меньше
1
6171 / 936 / 310
Регистрация: 25.02.2011
Сообщений: 1,367
Записей в блоге: 1
31.07.2013, 23:34 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от Catstail Посмотреть сообщение
Эта функция принимает две ячейки и возвращает
вариант:
Visual Basic
1
2
3
4
5
6
7
Function compCells2(c1 As Range, c2 As Range) As Integer
    Select Case -IsNumeric(c1.Value) - IsNumeric(c2.Value) * 2
    Case 1: compCells2 = 1
    Case 2: compCells2 = -1
    Case 3: compCells2 = Sgn(c1.Value - c2.Value)
    End Select
End Function
хотел вначале так записать:
Visual Basic
1
2
3
Function compCells3(c1 As Range, c2 As Range) As Integer
    compCells3 = Sgn(Val(c1) - Val(c2))
End Function
Но работает нормально только с целыми, положительными числами, и если текст не начинается с цифр, Val как то криво себя ведет

Добавлено через 6 минут
Visual Basic
1
2
3
4
5
Function compCells4(c1 As Range, c2 As Range) As Integer
    Dim i As Integer
    i = -IsNumeric(c1.Value) - IsNumeric(c2.Value) * 2
    If i = 3 Then compCells4 = Sgn(c1.Value - c2.Value) Else compCells4 = Choose(i + 1, 0, 1, -1)
End Function
1
31.07.2013, 23:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.07.2013, 23:34
Помогаю со студенческими работами здесь

Ввести с клавиатуры натуральное число N (N<1000). Вывести на экран наименьшее простое число, которое больше чем N
Буду очень благодарен если решите задачу. В задаче нельзя использовать массивы , другие классы....

Определить, больше ли число e^Pi чем число Pi^e
.Написать программу, которая печатает True или False в зависимости от того, больше число e^Pi...

В которое двузначное число и какую цифру надо вставить посередине записи, чтобы полученное число было в 6 раз больше чем исходное?
В которое двузначное число и какую цифру надо вставить посередине записи, чтобы полученное число...

Текст из TextBox в ListBox: пишется больше информации, чем нужно
то есть вместо &quot;текст&quot; в ListBox появляется System.Windows...Text &quot;текст&quot; Как это убрать?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru