[Office] Re[3]: Даты в Excell
> Как избавиться от интеллектульной помощи Екселя, которая проявляется в
> следующем виде: при вводе чисел в ячейки, нгапр., 4.05, ексель эти
> числа преобразовывает в даты, типа 04.05.1901....
Почитал советы. Сам в этом случае ВСЕГДА переключаю разделитель. Это
универсальный способ. Замена в редакторе точки на запятую опасна тем, что в
файле кроме чисел могут быть и даты (они преобразуются к виду 10,10,2007-
что неудобно и непонятно), и находиться просто текст с точками.
Для развития темы набросал простейший макрос. Он просматривает одну колонку
и работает, если в ней только цифры и текст, но нет дат:
Sub Макрос1()
'
' Макрос1 Макрос
'
For i = 4 To 1048 ' 4- начальная строка просмотра, 1048- последняя
(можно взять больше- не помешает, хоть 65536)
Cells(i, 7).Select ' 7- номер колонки
t$ = ActiveCell.Value
If Mid$(t$, 3, 1) = "." And Mid$(t$, 6, 1) = "." Then ' Условие для
поиска даты
t$ = Mid$(t$, 4, 2) + "." + Right$(t$, 2)
End If
If (Val(t$) <> 0 And Mid$(Right$(t$, 3), 1, 1) = ".") _
Or Right$(t$, 4) = "0.00" Then ' Исключает текст и ранее
преобразованные числа (кроме нуля).
ActiveCell.FormulaR1C1 = t$
ActiveCell.NumberFormat = "0.00" ' Формат с 2-мя знаками после
запятой
End If
Next
Cells(4, 7).Select ' Возвращаемся на первую строку
End Sub
Проверил только что на интернет- статистике. В указанной колонке (7-й) есть
и текст (заголовок), и суммы.
Был у нас еще такой случай. Прислали программу, написанную на Дельфях и в
ней жестко разделителем была точка (т.е. при вводе в поле 2,16 выдавалась
ошибка ввода). Пришлось на тех машинах, где работала эта прога,
перенастраивать разделитель навечно :(