Преобразование Excel в формат строки



Answers

Вот подход VBA:

Sub change()
    toText Sheets(1).Range("A1:F20")
End Sub

Sub toText(target As Range)
Dim cell As Range
    For Each cell In target
        cell.Value = cell.Text
        cell.NumberFormat = "@"
    Next cell
End Sub

Если вы ищете решение без программирования, вопрос должен быть перенесен в SuperUser.

Question

В ячейке в листе Excel у меня есть значение Date, например:

01/01/2010 14:30:00

Я хочу преобразовать эту дату в текст, а также хочу, чтобы текст выглядел точно так же, как Date. Таким образом, значение даты 01/01/2010 14:30:00 должно выглядеть как 01/01/2010 14:30:00 но внутри него должен быть текст.

Как это сделать в Excel?




В Excel 2010 ответ «Марга» работал только для некоторых данных, которые были у меня в моей таблице (он был импортирован). Следующее решение работало над всеми данными.

Sub change()
    toText Selection
End Sub

Sub toText(target As range)
Dim cell As range
Dim txt As String
    For Each cell In target
        txt = cell.text
        cell.NumberFormat = "@"
        cell.Value2 = txt
    Next cell
End Sub



Я понятия не имею о году публикации вопроса; теперь он может быть старым. Итак, я ожидаю, что мой ответ станет скорее ссылкой на будущие подобные вопросы после моего поста.

Я не знаю, получил ли кто-нибудь из них ответ, подобный тому, который я собираюсь дать, что может привести к тому, что я считаю самым простым, самым прямым и эффективным: если кто-то уже дал это, я извиняюсь , но я этого не видел. Здесь мой ответ, используя CStr вместо TEXT:

Асходящая ячейка A1 содержит дату и код VBA:

Dim strDate As String

'Convert to string the value contained in A1 (a date)
strDate = CStr([A1].Value)

После этого вы можете манипулировать им как любую обычную строку, используя строковые функции (MID, LEFT, RIGHT, LEN, CONCATENATE (&) и т. Д.).




В некоторых контекстах использование символа заранее будет работать, но если вы сохраните его в CSV и загрузите снова, это невозможно.

'01/01/2010 14:30:00



Links