Форум программистов, компьютерный форум, киберфорум
MS Office Excel
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 28.02.2014
Сообщений: 10
1

При копировании чисел макросом теряется ЧИСЛОВОЙ формат, как быть?

01.10.2014, 11:44. Показов 2671. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Пустяковая казалось бы штука...Подскажите, пожалуйста, что может быть?...
При работе макроса обнаружила одну очень непонятную вещь:

беру из файла ЧИСЛО, на всякий случай присваиваю ему в той ячейки куда кладу (на лист новой книги) опять числовой формат.

Visual Basic
1
2
Sheets(j + 1).Range("F81").Offset(, i).Value = nagr ' выводим нагрузку на каждом из перечисленных листов в строке 81
Sheets(j + 1).Range("F81").Offset(, i).NumberFormat = "0.00"
При этом на этом листе проверяю - у этого числа "числовой формат".

Но когда беру и копирую это же число на эту же книгу в другой лист...формат пропадает (хотя прописываю и до вставки числа и после!!), и это число не участвует в общем суммировании прописанном макросом...

Visual Basic
1
2
3
4
ngr = Sheets("УМР за год").Cells(81, FIO).Value 'берем нагрузку из строки 81
Sheets("План по ППС").Cells(FIO - 1, 5).NumberFormat = "0.00"
Sheets("План по ППС").Cells(FIO - 1, 5).Value = ngr 'заносим нагрузку в 5й столбец
Sheets("План по ППС").Cells(FIO - 1, 5).NumberFormat = "0.00"
результат:
230,00
896,00
454,00
258,00
902,00
451,00
900,00
844,35 (пишет в примечании ошибку "число сохранено как текст")
899,00
873,7 (пишет в примечании ошибку "число сохранено как текст")
4990 -итог суммирования всех вышеприведенных чисел (две жирные - не вошли в сумму)


Что происходит? при том НЕ для всех цифр...Может я формат не так присваиваю?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.10.2014, 11:44
Ответы с готовыми решениями:

При открытие файла csv макросом меняет формат столбца с "общий" на "числовой"
Здравствуйте! Подскажите, пожалуйста. Нужно макросом открыть файл csv. При открытии вручную все...

EXCEL - Корежатся даты при копировании макросом
Почему при обычной процедуре копирования макросом значений ячеек типа:...

Теряется формат ячеек при записи в них значений
Sheets("Êîðçèíà").Cells(razmer, 6) = TextBox1.Value Sheets("Êîðçèíà").Cells(razmer, 7) =...

При создании сводной таблицы теряется формат Дата
Почему-то при создании Сводной таблицы средствами VBA столбцы с датами переносятся как-то не так,...

6
Заблокирован
01.10.2014, 12:59 2
Rinalaz, покажите, как объявлены переменные nagr и ngr.
0
0 / 0 / 0
Регистрация: 28.02.2014
Сообщений: 10
01.10.2014, 13:11  [ТС] 3
это разные переменные - в одном макросе nagr, в другом макросе ngr, они объявлены как As String

например
Visual Basic
1
Dim vka2, ngr As String
0
Заблокирован
01.10.2014, 13:15 4
Ну и чему Вы удивляетесь, записывая
Цитата Сообщение от Rinalaz Посмотреть сообщение
Visual Basic
1
Sheets("План по ППС").Cells(FIO - 1, 5).Value = ngr 'заносим нагрузку в 5й столбец
?
Запишите хотя бы так:
Visual Basic
1
Sheets("План по ППС").Cells(FIO - 1, 5).Value =cdbl(ngr) 'заносим нагрузку в 5й столбец
А формат ячеек не может изменить их содержание (.Value)
0
0 / 0 / 0
Регистрация: 28.02.2014
Сообщений: 10
01.10.2014, 15:06  [ТС] 5
так я и не хочу заменять содержание! я хочу чтобы просто копировалось и считалось! а при копировании теряется формат, и не считается в итоговой сумме! в этом проблема...
0
Заблокирован
01.10.2014, 15:15 6
Ещё раз повторяю - этой строкой
Цитата Сообщение от Rinalaz Посмотреть сообщение
Sheets("План по ППС").Cells(FIO - 1, 5).Value = ngr 'заносим нагрузку в 5й столбец
Вы заносите в ячейку не число, а строку ngr As String
("844,35" к примеру) и никакие манипуляции с NumberFormat это не исправят.
Добавьте в код CDBL (как показано выше) или объявите Dim ngr As DOUBLE 'String
1
0 / 0 / 0
Регистрация: 28.02.2014
Сообщений: 10
01.10.2014, 16:50  [ТС] 7
Апострофф, спасибо! дошло! попробовала, да, все теперь числовое!
0
01.10.2014, 16:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.10.2014, 16:50
Помогаю со студенческими работами здесь

Ошибки при работе с динамическим массивом: неверный числовой формат при вводе
Выдаёт ошибку "неверный числовой формат при вводе" и "попытка разыменовать нулевой указатель"

Неверный числовой формат при вводе
Нужна помощь

Неверный числовой формат при вводе
ЭТО В УЧЕБНИКЕ Program Examen; Type results = record Fam: string|15|; Rus: 2. .5; Alg:...

Как поменять числовой формат на дату
Access 2003 как мне преобразовать числовое значение 20080131 в формат даты 31.01.2008


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

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