【问题标题】:Paste a value in Excel exactly as is visible完全按照可见的方式在 Excel 中粘贴值
【发布时间】:2018-09-18 18:19:49
【问题描述】:

我有一个简单的请求,将数据完全粘贴到 Excel 中可见

我有一个 mm/yyyy 格式的日期列表,但 Excel 不断添加 mm/dd/yyyy,这使我的分析无法进行。它的格式仅显示mm/yyyy,但实际单元格值一直设置为mm/01/yyyy

我怎样才能简单地将值复制/粘贴为mm/yyyy

我试过Range("A1").Value = Range("A1").Value,但当然只是保留了相同的信息。

是的,就我而言,因为它是日期,我可以做一个 kludgy 函数,它采用左边的三个字符,并与最右边的四个字符组合。但是,这实际上只是获取返回的日期编号。我试过G4 并得到4171730。另外,我也想知道如何处理其他类型的单元格值(字符串、数字等)。

【问题讨论】:

  • 你试过Range("A1").Value = Range("A1").Text吗?
  • @ScottCraner - 我做到了,它保持不变。这很奇怪,因为我可以发誓这就是答案。甚至尝试了一个中间人字符串变量:Set rng = Range("G4") // str = rng.text // rng.Value = str 这使实际值保持为04/01/2014 很奇怪。 但是 str 正确设置为04/2014。所以这绝对是正确的道路。
  • 还有PasteSpecial Paste:=xlPasteValuesAndNumberFormats方法。

标签: excel vba


【解决方案1】:

保存值和格式,然后将单元格设置为文本并分配格式化的值:

Sub test()
    Dim t As Variant
    t = Range("A1").Value2

    Dim x As String
    x = Range("A1").NumberFormat

    Range("A1").NumberFormat = "@"
    Range("A1").Value = Format(t, x)

End Sub

这也有效

Sub test()
    Dim t As String
    t = Range("A1").Text

    Range("A1").NumberFormat = "@"
    Range("A1").Value = t

End Sub

【讨论】:

  • 打败了我。我刚刚完成强制 vba 中的文本格式,我看到了这个:(
  • 哈哈,也打败了我,很好的想法,非常感谢!我认为问题确实是在Value 之前设置数字格式。干杯斯科特!
【解决方案2】:
 Range("A1").Value = Format(yourdate, "mm/yyyy")

【讨论】:

  • 不幸的是,不起作用。使用Range("A1") 作为我的可见04/2014,仍然将实际值保持为04/01/2014:/
  • BRB 会玩这个直到我弄明白
  • 哈哈,我也是:D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多