如何在Excel中获取显示值而不是实际值?
我有一个单元格包含date前。 “05/11/09”目前显示为“11-MAY-09”。 如何复制粘贴或使用VBA将string“11-MAY-09”放到旁边的单元格中(NOT“05/11/09”)?
除了自己拼凑date片段之外,我无法弄清楚。
使用格式function。
Format("5/11/2009", "DD-MMM-YY")
这将返回:
11-May-09
如果情况很重要:
UCase(Format("5/11/2009", "DD-MMM-YY"))
收益:
11-MAY-09
Range("B1").Value = Range("A1").Text
使用单元格的.text而不是.value修饰符将复制文本格式而不是原始date。
查
我相信你可以使用TEXT函数来根据你的喜好设置一个date值的格式。
格式string“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
它会将选定单元格(提示)的文本放入活动单元格中。
您应该能够右键单击单元格并将其设置为常规。 这将允许你放入一些东西,而不会被自动格式化为其他东西。
为了避免复制和粘贴,您还需要先input想要的date,然后再格式化,然后复制。
在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
另一种方法来做到这一点。
低技术,但非常简单的方法 – 粘贴到Word中,然后复制到Excel! 可以用一个大文件,但是需要一段时间,但是,一次性使用伟大的工程!
“同样的答案,但具有不同的function(这对我有效):
Public Function DisplayText(ByVal pRange As Range) As String DisplayText = pRange.Text End Function
只需使用=DisplayText(A1)
。 如果您更改单元格格式,此function将返回显示的文本“
- cc:alvaroc
如何获取MS Excel中的单元格的显示值(对于转换为date的文本)?