Перевод чисел сохраненных как текст в числа

Автор NooBasTiK, 19.04.2016, 22:32

« назад - далее »

NooBasTiK

Добрый вечер! Есть проблема с числами сохраненными как текст, пользую надстройкой для excel, и она не ищет цифры пока они сохранены как текст. Файлов очень много, порядка 600 штук. Есть какой-то макрос или что то подобное который найдет такие числа и переведет их в файлах. Или может подскажите какая маска для поиска таких чисел, пробовал "3" '3. Спасибо

vikttur

Val, CDbl...
А вообще - непонятно без примера.

NooBasTiK

Пример будет только завтра, на работе они. А так пример-то и не нужен вроде :). Есть куча файлов с числами в которых есть числа сохраненные не как числа (выгрузки из программ). Что бы собрать данные из этих файлов я пользуюсь надстройкой, которая вот эти числа-не числа не видит.

Serge 007

здравствуйте

Как вариант: можно макросом в цикле пройтись по UsedRange каждого файла, преобразовывая значения ячеек в число, и если возникает ошибка, то возвращать исходный текст, а если преобразование удалось, то оставлять результат
Бесплатная помощь: www.excelworld.ru
Платная помощь: sergeyizotov@excelworld.ru
Ю-money: 41001419691823 | WMR:126292472390

vikttur

ЦитироватьА так пример-то и не нужен вроде
Какие данные? Смешанные? только числовые? Диапазоны известны или нужно определять?
Искать на всех 1100 листах или одном?

пример не нужен? А если кто надумает кодом помочь - ему же и файл создавать?
ЦитироватьПример будет только завтра, на работе они
На работе - рабочие файлы, как я понимаю... А пример - это пример.

NooBasTiK

Еще раз привет! Вот файл пример. На листе "РС" есть столбец "I" в котором стоят идентификаторы данных,вот они и сохранены как числа которые сохранены как текст, их и надо пере сохранить как число.   

vikttur

Копировать пустую ячейку, выделить диапазон, Спецвставка-Сложить-ОК.
Записано макрорекодером и удалено лишнее:
Sub Макрос1()
    Range("Q5").Copy
    Columns("I:I").PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd
End Sub


Добавить перебор файлов в папке - и готово преобразование.

kuklp1

Я, как всегда, чертовски адекватен... Email: kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728, E332314026771

vikttur

#8
Спасибо, не знал.


NooBasTiK

Слепил вот такое но что то не работает :)
Sub Perebor()
    Dim sFolder As String, sFiles As String
       With Application.FileDialog(msoFileDialogFolderPicker)
        If .Show = False Then Exit Sub
        sFolder = .SelectedItems(1)
    End With
    sFolder = sFolder & IIf(Right(sFolder, 1) = Application.PathSeparator, "", Application.PathSeparator)
        Application.ScreenUpdating = False
    sFiles = Dir(sFolder & "*.xls*")
    Do While sFiles <> ""
        Workbooks.Open sFolder & sFiles
        ActiveWorkbook.Sheets(2).Range("Q5").Copy
    Columns("I:I").PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd
        ActiveWorkbook.Close True
        sFiles = Dir
    Loop
    Application.ScreenUpdating = True
End Sub

kuklp1

А так:
Sub Perebor()
    Dim sFolder As String, sFiles As String
    With Application.FileDialog(msoFileDialogFolderPicker)
        If .Show = False Then Exit Sub
        sFolder = .SelectedItems(1)
    End With
    sFolder = sFolder & IIf(Right(sFolder, 1) = Application.PathSeparator, "", Application.PathSeparator)
    Application.ScreenUpdating = False
    sFiles = Dir(sFolder & "*.xls*")
    Do While sFiles <> ""
        With Workbooks.Open(sFolder & sFiles).Sheets(2)
            .Range("Q5").Copy
            .Columns("I:I").PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd
            .Parent.Close True
        End With
        sFiles = Dir
    Loop
    Application.ScreenUpdating = True
End Sub
Я, как всегда, чертовски адекватен... Email: kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728, E332314026771

NooBasTiK