如何在粘贴到Excel文件时保留前导零?

6
有没有办法在将值粘贴到列中时不改变列的格式?
我找到了很多“事后”解决方法,比如将其粘贴进去,将列格式设置为文本,然后再添加前导零等。 这不是我想要的。 为了背景,我想能够将GTIN编号发布到Excel文档中,然后在网站上导入它。 GTIN可以是8、12、13或14个数字长(无法确定它是哪一个)。
我想要粘贴的数字是02327718200002,但每次这样做时它看起来都像这样:

What happens when I post 02327718200002 into a text-formatted column.

发生的情况是,在粘贴之前格式为文本的列变成了“常规”格式的列,并被读作数字。这导致前导0完全消失。因此,即使我右键单击列并将其格式化为文本...前导0也会消失。

https://dev59.com/A3E95IYBdhLWcg3wkekf - Pankaj Jaju
你是从单元格复制到单元格还是从外部源复制到单元格? - Gary's Student
@Gary'sStudent 在这种特定情况下,数据将来自外部来源(网站)。但是如果可能的话,我想找到一种不管数据来源的解决方案。 - Danieboy
@PankajJaju 我明确说过这不是我想要的。你有读过这个帖子吗? - Danieboy
@PankajJaju 我不是从另一个文件进行导入。 - Danieboy
显示剩余3条评论
3个回答

7

不要使用传统的粘贴方式,比如CTRL + V,确保你的列首先格式化为文本,然后右键单击并选择“特殊粘贴”。这将允许你以文本形式粘贴。


1
这个不起作用。我测试过了 - 复制问题中的数字,然后选择“粘贴特殊”>“文本”,你会发现零已经被删除了。 - CallumDA
1
这在任何给定的替代方案(HTML、Unicode 文本或文本)中都无法工作。编辑:我改变了主意,如果我将其格式化为文本并进行特殊粘贴,则可以工作。 - Danieboy
1
在粘贴之前,请确保整个列已经格式化为文本。 - AsheraH
@Danieboy 绝对有效,你只需要先格式化列。 - Takarii
1
我刚刚测试了一下,如果单元格在粘贴之前已经格式化为文本,则“特殊粘贴”>“文本”将保留前导零。作为键盘快捷键,CTRL-ALT-V是特殊粘贴。 - Dan Henderson
显示剩余8条评论

4

根据您发布的评论,并假设您已经将该列格式化为文本,您可以使用类似于以下内容的方法...

Sub PasteSpecial()

    ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:= _
        False
End Sub

按下Alt+F11打开VBA编辑器,然后将以下内容粘贴进去。回到Excel中的开发人员选项卡,单击宏,然后突出显示宏(PasteSpecial)。单击选项,您可以选择添加快捷方式。当您按下所选快捷键组合时,代码将粘贴到可见工作表上的活动单元格中。
但是,在将内容粘贴到除文本以外的任何格式化列中的单元格时,它将采用默认的“常规”类型。
注:如果要创建自定义快捷方式或进行其他操作,请使用此方法。还有一个内置的CTRL + ALT + V快捷方式也可以进行特殊粘贴。个人认为内置快捷方式使用起来很笨拙。

抱歉如果我现在听起来像个初学者,但是...这段代码应该放在哪里?我猜想它应该在Alt+F11菜单中的某个地方。 - Danieboy
我在我的瑞典版本中找了一段时间的开发者选项卡...但解决方案有效! - Danieboy
它似乎有时会出现粘贴到“下一个”(右侧)列的情况,你有什么想法吗? - Danieboy
@Danieboy 无法解释那个。这可能与您选择的按键绑定有关,因为代码根本不应该这样做。 - Takarii

0

来自“我有一个极其专业的问题,根源在于这个问题”的世界的问候。我已经四处寻找解决方案,希望现在你不必再这样做了。

如果将样式mso-number-format: \@;应用于HTML表格的<td>元素(包含有问题的字符),Excel将接受数字格式覆盖并按所需显示内容,允许数字以小数点前/后带有前导和/或尾随零进行显示。

示例(完全可行,可粘贴到Excel中):

<table>
  <tbody>
    <tr>
      <td style="white-space: nowrap;mso-number-format: \@;">
        011001010110110001101111.011010000110010101101100
      </td>
    </tr>
  </tbody>
</table>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接