Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2011, 17:44   #1
Snekich
Форумчанин
 
Аватар для Snekich
 
Регистрация: 19.11.2011
Сообщений: 128
По умолчанию Не пойму в чем ошибка

Макрос:

Sub Text_V_Chis()

For I = 5 To 16

Sheets(I).Select

EndRow = Range("C1").SpecialCells(xlLastCell ).Row

For N = 1 To EndRow
znach = Range("c" & N)
Range("c" & N).Formula = "=VALUE(" & znach & ")"
Next N
Next I


На строке
Range("c" & N).Formula = "=VALUE(" & znach & ")"
выдает ошибку...
В чем ошибка?

Может есть другой способ преобразовать текст в числа не создавая "промежуточные" значения в других ячейках?
End Sub
Нет ничего невозможного, главное верить в это.
Snekich вне форума Ответить с цитированием
Старый 18.12.2011, 18:02   #2
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Скопировать пустую ячейку, выделить диапазон, специальная вставка-сложить. Выделить диапазон, данные-текст по столбцам. И т.д.
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 18.12.2011, 18:09   #3
Snekich
Форумчанин
 
Аватар для Snekich
 
Регистрация: 19.11.2011
Сообщений: 128
По умолчанию

Цитата:
Сообщение от kuklp Посмотреть сообщение
Скопировать пустую ячейку, выделить диапазон, специальная вставка-сложить. Выделить диапазон, данные-текст по столбцам. И т.д.
ячейки в столбце С не пустые (ну может только некоторые)

Суть работы:
1) определяется число строк в столбце С
2) перебираем поочередно ячейки в столбце С:
(В этих ячейках числа в текстовом формате)
- Значение ячейке копируем в переменную
- вставляем в ячейку формулу =значен(), в скобках которой переменая (с прошлым значением в ячейке)
Нет ничего невозможного, главное верить в это.
Snekich вне форума Ответить с цитированием
Старый 18.12.2011, 18:16   #4
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Где угодно на листе скопируйте пустую ячейку и специальной вставкой прибавьте ее к нужному диапазону. Можете записать это рекордером.
Если все же хотца циклом(самый бестолковый способ), то:
Код:
        EndRow = Range("C1").SpecialCells(xlLastCell).Row

        For n = 1 To EndRow
            Cells(n, 3).Value = Val(Cells(n, 3).Value)
        Next n
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728

Последний раз редактировалось kuklp; 18.12.2011 в 18:22.
kuklp вне форума Ответить с цитированием
Старый 18.12.2011, 18:36   #5
Snekich
Форумчанин
 
Аватар для Snekich
 
Регистрация: 19.11.2011
Сообщений: 128
По умолчанию

Цитата:
Сообщение от kuklp Посмотреть сообщение
Где угодно на листе скопируйте пустую ячейку и специальной вставкой прибавьте ее к нужному диапазону. Можете записать это рекордером.
Если все же хотца циклом(самый бестолковый способ), то:
Код:
        EndRow = Range("C1").SpecialCells(xlLastCell).Row

        For n = 1 To EndRow
            Cells(n, 3).Value = Val(Cells(n, 3).Value)
        Next n

Сначала думал что получилось, но потом заметил, что цифры после запятой обнуляются...
Но сделал так:
Cells(N, 3).Value = Cells(N, 3).Value * 1
и получилось.
Спасибо.

На счет пустой ячейки ...
Нет ничего невозможного, главное верить в это.

Последний раз редактировалось Snekich; 18.12.2011 в 21:26.
Snekich вне форума Ответить с цитированием
Старый 18.12.2011, 19:35   #6
Snekich
Форумчанин
 
Аватар для Snekich
 
Регистрация: 19.11.2011
Сообщений: 128
По умолчанию

Цитата:
Сообщение от kuklp Посмотреть сообщение
Где угодно на листе скопируйте пустую ячейку и специальной вставкой прибавьте ее к нужному диапазону. Можете записать это рекордером.
Если записать, то получится:
Range("C1").Select 'пустая
Selection.Copy
Range("C2:C10").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd, SkipBlanks:= _
False, Transpose:=False

Но при запуске макроса ничего не меняется (хотя если проделать операцию вручную, то все работает).

В чем может быть причина?
Могу предположить что надо как-то обновлять ячейку после "суммирования" ?
Нет ничего невозможного, главное верить в это.

Последний раз редактировалось Snekich; 18.12.2011 в 21:13.
Snekich вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не пойму, в чем ошибка... ООП.Работа с файлами данных, С++ Purr Помощь студентам 2 24.10.2010 22:06
Не пойму в чем ошибка. Кто подскажет? Wild_klas Помощь студентам 8 20.10.2010 09:05
не пойму в чем ошибка Анастасия123456789 Помощь студентам 3 23.03.2009 15:53
Не пойму в чем ошибка Machete PHP 2 08.12.2008 10:09