我有一个单元格包含日期前。 “05/11/09” 它目前显示为“11-MAY-09”。如何复制粘贴或使用VBA获取字符串“11-MAY-09”到旁边的单元格中(NOT“05/11/09”)?如何在Excel中获取显示值而不是实际值?
除了单独拼凑日期片段之外,我无法想出它。
我有一个单元格包含日期前。 “05/11/09” 它目前显示为“11-MAY-09”。如何复制粘贴或使用VBA获取字符串“11-MAY-09”到旁边的单元格中(NOT“05/11/09”)?如何在Excel中获取显示值而不是实际值?
除了单独拼凑日期片段之外,我无法想出它。
使用格式化功能。
Format("5/11/2009", "DD-MMM-YY")
这将返回:
11-May-09
如果情况事项:
UCase(Format("5/11/2009", "DD-MMM-YY"))
回报:
11-MAY-09
我相信你可以使用TEXT函数来根据你的喜好设置一个日期值的格式。
“dd-mmm-yy”的格式字符串会将“05/11/09”格式设置为“11-MAY-09”。
试试这个:
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
它将把选定的单元格(提示)的文本在活动单元格。
您应该能够右键单击单元格并将格式设置为常规。这将允许你放入一些东西,而不会自动格式化为其他东西。
为了避免复制和粘贴,您还需要先输入想要的日期,然后再格式化,然后复制。
在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
Range("B1").Value = Range("A1").Text
使用单元格的.text而不是.value修饰符将复制文本格式而不是原始日期。
卡盘
低科技但很简单的方法 - 粘贴到Word中,然后复制回Excel!可能需要花费一些时间才能处理大文件,但是...但是,一次性使用的效果非常好!
“同样的答案,但有不同的功能(已为我工作):
Public Function DisplayText(ByVal pRange As Range) As String
DisplayText = pRange.Text
End Function
只需使用=DisplayText(A1)
。如果更改单元格的格式此函数将返回所显示的文本”
How can I get the displayed value of a cell in MS Excel (for text that was converted to dates)?