【问题标题】:VBA excel paste as textVBA excel粘贴为文本
【发布时间】:2017-08-03 07:42:03
【问题描述】:

我需要将数字粘贴为文本。由于前面有很多零,这是有问题的(但我需要它们)。第一个sn-p,不起作用(我在网上找到的)。

Worksheets("B").Range("k7:k7").PasteSpecial Format:=”Text”, 
Link:=False, DisplayAsIcon:=False

我记录了另一个,但它并不总是有效。

PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone, 
SkipBlanks:=False, Transpose:=False

有人可以给我建议一个更好的解决方案吗?

【问题讨论】:

  • 您是否尝试在单元格中的文本前面添加'?这应该使 excel 将您的数字视为文本并保持前导零
  • 或者您可以尝试按照本文中的方法进行操作,有几个解决方案:support.office.com/en-us/article/… 或试试这个公式:=TEXT(A1,"000-00-0000"),它会给出这样的结果:012-34-5678

标签: excel vba text formatting copy-paste


【解决方案1】:

您需要将单元格/列格式化为“文本”格式,然后粘贴数字以保留前导零。如果它仍然不起作用,请尝试先将数字粘贴到记事本,然后将记事本中的所有数字复制并粘贴回现在格式化为“文本”的单元格/列。 希望对您有所帮助。

【讨论】:

    【解决方案2】:

    如果您尝试复制粘贴单个单元格,而不是复制粘贴,请从单元格中获取值附加单引号并将值存储在目标中

    【讨论】:

      【解决方案3】:

      我无法重现您的问题。

      我创建了一个新工作表,其中包含以下内容:

      以下代码似乎可以满足您的要求:

      Sub pasteAsText()
      
      ActiveSheet.Range("A2").Copy
      ActiveSheet.Range("C2").PasteSpecial
      
      ActiveSheet.Range("A3").Copy
      ActiveSheet.Range("C3").PasteSpecial
      
      ActiveSheet.Range("A4").Copy
      ActiveSheet.Range("C4").PasteSpecial
      
      
      End Sub
      

      这能解决你的问题吗?

      【讨论】:

        猜你喜欢
        • 2020-06-16
        • 2015-07-29
        • 2013-12-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多