0 / 0 / 0
Регистрация: 27.06.2011
Сообщений: 63

Как автоматизировать поиск и устранение ошибки "число сохранено как текст"?

17.09.2011, 17:03. Показов 10248. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть столбец, в котором есть ячейки, содержащие численные значения, сохраненные как текст. Как можно автоматизировать исправление такмх ошибок?
Метод произверения данных столбца на 1 не поможет, т.к. в столбце есть данные типа '3545-76р', а при умножении на 1 они меняются...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.09.2011, 17:03
Ответы с готовыми решениями:

Число сохранено как текст - как исправить?
Всем доброго времени суток! Возникла такая проблема. После вывода результата примерно такого запроса к БД в грид: @"SELECT...

Импорт в Excel из БД с ошибкой "Число сохранено как текст"
Приветствую, Предполагаю, что тема избита, но сам программирую на PL/SQL и в VB почти дуб, а тут столкнулся с импортом данных в шаблон...

Как пропустить ошибки о том что в ячейке находится не текст а число?
Имеем в ячейке значение "12345678901234". Делаем формат ячейки текстовым. В верхнем левом углу ячейки вылезает зеленый треугольничек,...

13
Alex77
19.09.2011, 03:08
Попробуй просто проверять примерно так:
В данном случае по колонке 'А'
Visual Basic
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Sub Макрос3()
'
' Макрос3 Макрос
' Макрос записан 12.07.05 (АлексАндр)
'
Dim i, j, S, A, b
'установка размера таблицы по калонке 'А'
rk = Columns('A').Rows(65536).End(xlUp).Row
'
        For i = 2 To rk
 
        ' установка цифрового формата текущей ячейки
        Range('A' & i).NumberFormat = '0.00'
        
        S = Range('A' & i).Value
        
                For j = 1 To Len(S)
                ' перенос только цифр
                If Asc(Mid(S, j, 1)) >= 48 And Asc(Mid(S, j, 1)) <= 57 Then
                
                A = A & Mid(S, j, 1)
                End If
                'установка разделительного знака всегда запятой вместо точки или тире
                If Asc(Mid(S, j, 1)) = 44 Or Asc(Mid(S, j, 1)) = 45 Or Asc(Mid(S, j, 1)) = 46 Then
                
                A = A & ','
                             ' подсчёт исправлений
                      If Asc(Mid(S, j, 1)) = 45 Or Asc(Mid(S, j, 1)) = 46 Then
                      b = b + 1
                      End If
                                                     
                End If
                
                Next j
        
        Range('A' & i) = A
        
        A = ''
        Next i
    
     
    MsgBox 'Произведено ' & b & ' мсправлений', vbOKOnly, 'Отчёт о работе'
    
End Sub
0 / 0 / 0
Регистрация: 27.06.2011
Сообщений: 63
22.09.2011, 13:19  [ТС]
спасибо за ответ!
0
Сумрак
25.09.2011, 05:51
Visual Basic
1
Application.ErrorCheckingOptions.NumberAsText = False
это отклчение на проверку ошибки... вообще :-)
Щас гляну.. еще что нить может есть не такое грубое
Сумрак
25.09.2011, 06:09
Visual Basic
1
2
3
If ActiveCell.Errors.Item(xlNumberAsText).Value = True Then
    ActiveCell.Value = Val(ActiveCell.Value)
End If
Сумрак
25.09.2011, 09:23
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Sub notErr(myR As Range)
    For Each mV In myR.Cells
        For i = 1 To 7
            If i = 3 And mV.Errors.Item(i).Value = True Then
                mV.Value = Val(mV.Value)
            Else
                mV.Errors(i).Ignore = True
            End If
        Next i
    Next mV
End Sub
Сумрак
25.09.2011, 18:35
хех.. парни.. тут сплошные ограничения... не могу получить полные функции етого обькта... :-))))
официально только тру и фэлс, одного из семи.... и все.. забавно.
0 / 0 / 0
Регистрация: 27.06.2011
Сообщений: 63
26.09.2011, 23:24  [ТС]
Я нашел способ автоматизировать эту задачу!!!!!
Можете считать меня кем хотите, но я сделал так (т.к. эта функция нужна исключительно мне, а не какому-нибудь сотруднику нашей компании):
Достал программу, которая записывает действия пользователя (типа макросы) и записал в ней нажатие клавиши 'Enter'.
Включил в Excell'е 'исправление ошибок' и запустил эту программу, зациклив нажатие кл. 'Enter'.
Все!!!!! Сижу пью чай, а программа сама нажимает на клавишу и тем самым исправляет ошибки, ну чем не автоматизация???
0
0 / 0 / 0
Регистрация: 25.11.2015
Сообщений: 3
04.05.2018, 14:36
Сумрак — the Best !!!
0
1847 / 1162 / 354
Регистрация: 11.07.2014
Сообщений: 4,107
04.05.2018, 18:12
temeshov, а просто в настройках отключить эту опцию вас не устраивает?
0
0 / 0 / 0
Регистрация: 25.11.2015
Сообщений: 3
05.05.2018, 07:12
Уважаемый Burk, бывают ситуации, когда с числами в таблице нужно произвести какие то действия. Например, хотя бы просто сравнить их с полученными числами из другой таблицы (даже в другом файле). При этом возникает проблема, т.к. сравнение числа и текста само по себе некорректно.
Решение уважаемого Сумрака отлично подходит для подобной задачи. Простое отключение же в настройках этой опции, про которую Вы говорите, к сожалению, ничего не даёт.
0
 Аватар для pashulka
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
05.05.2018, 07:32
Vja4eslav, Для сравнения можно использовать такой вариант (вместо констант можно использовать ссылки)

Code
1
=СОВПАД("5";5)
0
0 / 0 / 0
Регистрация: 25.11.2015
Сообщений: 3
05.05.2018, 08:36
Спасибо, возьму на заметку)
0
 Аватар для pashulka
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
05.05.2018, 09:27
Vja4eslav, Забыл предупредить, при таком сравнении - разделитель целой и дробной части, должен быть один и тот же, т.е. истину мы получим только в первом случае.

Code
1
2
=СОВПАД(5,5;"5,5")
=СОВПАД(5,5;"5.5")
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.05.2018, 09:27
Помогаю со студенческими работами здесь

Как автоматизировать поиск из MS Excel и B2B?
Работаю с двумя программами, MS Excel и B2B. Необходимо скопировать данные из ячейки в столбце B, вставить в поле поиска в B2B в...

Как переопределить текст ошибки, либо сделать, чтобы ошибки не возникало?
У меня есть свойства в модели типа decimal. И если в textbox у меня пустая строка, то появляется ошибка system.invalidcastexception: &quot;...

Задаётся число в виде текста как а$.Как перевести этот текст в число?
Есть переменная a$=1 , в виде текста , как преобразовать её в цифру 1?

Как задать массиву имя, которое сохранено в другом массиве
Есть вектор Х, состоящий из целых чисел. Есть куча двумерных массивов с именами y1,y2,..,yn. Каким образом можно задать массивы с именами...

Устранение ошибки
Доброго времени суток.. После подключения формы в приложении WinForms C++ выдает ошибку 1&gt;LINK : warning LNK4022: не удается найти...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru