2009-07-08 4 views
5

У меня есть ячейка, содержащая дату ex. «05/11/09» В настоящее время отображается как «11-MAY-09». Как скопировать-вставить или использовать VBA, чтобы получить строку «11-MAY-09» в ячейку рядом с ней (НЕ «05/11/09»)?Как получить отображаемое значение вместо фактического значения в Excel?

Я не могу понять это, кроме как вырезать кусочки даты сами по себе.

ответ

3

Используйте функцию Format.

Format("5/11/2009", "DD-MMM-YY") 

Это вернет:

11-May-09 

Если дело имеет значение:

UCase(Format("5/11/2009", "DD-MMM-YY")) 

возвращается:

11-MAY-09 
4

Я считаю, что вы можете использовать функцию ТЕКСТ для форматирования значения даты по своему вкусу.

Формат строки «dd-mmm-yy» будет форматировать «05/11/09» как «11-MAY-09».

1

Попробуйте это:

Sub FormattedText() 
    Dim r As Range 

    On Error Resume Next 
    Set r = Application.InputBox(prompt:="Select cell", Type:=8) 
    If r.Count <> 1 Or r Is Nothing Then 
     Exit Sub 
    End If 
    On Error GoTo 0 

    ActiveCell = "'" & r.Text 

End Sub 

Он поместит текст выбранной ячейки (с подсказкой) в активной ячейке.

0

Вы должны щелкнуть правой кнопкой мыши по ячейке и установить формат как Общий. Это позволит вам вставлять что-то, не будучи автоматически отформатированным на что-то еще.

Чтобы избавиться от копирования и вставки, вы также захотите начать с даты, которую хотите, а не форматирования и копирования.

0

В VBA вы можете сделать это:

Range("B2") = Range("A2") 
Range("B2").NumberFormat = "dd-mmm-yyyy hh:mm:ss" 'Date as 10-Jun-2005 

Если вам нужно цикл его тогда:

Range("B" & i) = Range("A"& i) 
Range("B" & i).NumberFormat = "dd-mmm-yyyy hh:mm:ss" 'Date as 10-Jun-2005 

Another way to do it.

6
Range("B1").Value = Range("A1").Text 

Использование текстового редактора .text вместо .value-модификатора скопирует форматирование текста вместо необработанной даты.

Chuck

0

Low-тек, но очень простой способ - вставить его в Word, а затем скопировать обратно в Excel! Может занять некоторое время с большим файлом, однако ... но отлично работает для одноразовых использования!

0

«Тот же самый ответ, но с другой функцией (который работал для меня):

Public Function DisplayText(ByVal pRange As Range) As String 
    DisplayText = pRange.Text 
End Function 

Просто используйте =DisplayText(A1).Если изменить формат ячейки эта функция будет возвращать отображаемый текст»

  • куб.см: alvaroc

How can I get the displayed value of a cell in MS Excel (for text that was converted to dates)?

 Смежные вопросы

  • Нет связанных вопросов^_^