如何在Excel中获取显示的值而不是实际值?

时间:2009-07-08 18:06:12

标签: excel vba date copy format

我有一个包含日期的单元格。 “05/11/09” 目前显示为“11-MAY-09”。如何复制粘贴或使用VBA将字符串“11-MAY-09”放入其旁边的单元格中(不是“05/11/09”)?

除了单独拼出日期文件外,我无法弄明白。

8 个答案:

答案 0 :(得分:10)

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

使用单元格的.text而不是.value修饰符将复制文本格式而不是原始日期。

答案 1 :(得分:4)

我相信你可以使用TEXT函数根据自己的喜好格式化日期值。

格式字符串“dd-mmm-yy”将“05/11/09”格式化为“11-MAY-09”。

答案 2 :(得分:3)

使用格式化功能。

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

这将返回:

11-May-09

如果案件有问题:

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

返回:

11-MAY-09

答案 3 :(得分: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

它会将所选单元格的文本(提示)放入活动单元格中。

答案 4 :(得分:0)

您应该能够右键单击单元格并将格式设置为“常规”。这将允许您放入一些内容,而不会自动将其格式化为其他内容。

为了避免复制和粘贴,您还需要先输入所需的日期,而不是格式化然后复制。

答案 5 :(得分: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 :(得分:0)

低技术但非常简单的方法 - 将其粘贴到Word中,然后复制回Excel!可能需要一段时间才能使用大文件,但是......但是对于一次性使用非常有用!

答案 7 :(得分:0)

“相同的答案,但功能不同(对我有用):

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

只需使用=DisplayText(A1)即可。如果更改单元格格式,此函数将返回显示的文本“

  • cc:alvaroc

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