2009-07-08 91 views
5

我有一个单元格包含日期前。 “05/11/09” 它目前显示为“11-MAY-09”。如何复制粘贴或使用VBA获取字符串“11-MAY-09”到旁边的单元格中(NOT“05/11/09”)?如何在Excel中获取显示值而不是实际值?

除了单独拼凑日期片段之外,我无法想出它。

回答

3

使用格式化功能。

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

这将返回:

11-May-09 

如果情况事项:

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

回报:

11-MAY-09 
4

我相信你可以使用TEXT函数来根据你的喜好设置一个日期值的格式。

“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修饰符将复制文本格式而不是原始日期。

卡盘

0

低科技但很简单的方法 - 粘贴到Word中,然后复制回Excel!可能需要花费一些时间才能处理大文件,但是...但是,一次性使用的效果非常好!

相关问题