Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
копирование данных через массив, заменяются точки на запятые
 
Доброго дня, коллеги!
Столкнулся с проблемой, к которой даже не понимаю как подступиться. Может у кого есть опыт в решении данной проблемы? Суть в следующем:
Программа собирает данные с разных файлов в один. Делаю вроде все стандартно: открываю файл, заношу данные одной колонки в массив
Код
arrOut = iTempWB.Sheets(1).Range(iTempWB.Sheets(1).Cells(2, i), iTempWB.Sheets(1).Cells(iLastRowTMP, i)).Value

потом этот массив переношу в основной файл.
Код
ThisWorkbook.Sheets("Данные").Cells(2, iCol).Resize(UBound(arrOut), 1).Value = arrOut

и вот тут возникает магия. В файле сидят данные в виде "2.2015", формат ячейки общий. При переносе они становятся "2,2015". Если заменить потом все запятые на точку, то ячейки становятся "01.02.2015" с форматом даты и отображаются как "фев.15".
В общем мне надо получить "2.2015" а как это сделать? я в ступоре. Менять принцип переноса данных? че-то не хочется.
Изменено: ber$erk - 14 Мар 2015 11:14:52
Учимся сами и помогаем другим...
 
А перед сбросом в Sheets("Данные") нельзя сделать формат столбца iCol текстовым?
Изменено: Johny - 14 Мар 2015 11:08:13
There is no knowledge that is not power
 
Добрый день
В массиве arrOut какие значения?
С точкой или с запятой?
 
Alexander88, в arrOut с точкой.

Johny, спасибо, это помогло в целом. Но если смотреть глобально, то я изначально не знаю где будет колонка с такими данными. А если все столбцы задать текстовыми, то колонки с числами остаются текстовыми.
Учимся сами и помогаем другим...
 
Цитата
ber$erk написал: то колонки с числами остаются текстовыми.
И что? Excel всё равно "узнает" число даже если формат текстовый.
There is no knowledge that is not power
 
Цитата
Johny написал:  Excel всё равно "узнает" число
Не всегда...
 
Цитата
Михаил С. написал: Не всегда...
Ну вам виднее...
There is no knowledge that is not power
 
ber$erk, счас попробовал сначала ставить целевому диапазону текстовый формат, присваивать значение, потом ставить формат Общий. Числа становятся числами, а "2.2015" остается текстом!
Код
Sub bb()
Dim v()
With Selection
  v = .Value
  With .Offset(, 3) 'целевой диапазон
    .NumberFormat = "@"
    .Value = v
    .NumberFormat = "General"
  End With
End With
End Sub
 
Виноват. Не обратил внимание, что в исходном файле числа в виде строки сохранены. Поэтому и в своде они показывались текстом. Всем спасибо!
Решение найдено.
Учимся сами и помогаем другим...
Страницы: 1
Читают тему (гостей: 1)