我有一個單元格包含日期前。 「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)?