当我从excel复制并粘贴到记事本时,每个引号后都有额外的引号

Posted

技术标签:

【中文标题】当我从excel复制并粘贴到记事本时,每个引号后都有额外的引号【英文标题】:Extra quotes after every quotes when I copy and paste to notepad from excel 【发布时间】:2016-04-29 10:23:21 【问题描述】:

我将以下文本存储在工作表的单元格中

<tr onmouseover="this.style.backgroundColor='#74eb61';" onmouseout="this.style.backgroundColor='#e8e8e8';">

现在,当我将其复制并粘贴到记事本时,我会在每个引号之后得到一个额外的引号符号,因此它变成了以下字符串

<tr onmouseover=""this.style.backgroundColor='#74eb61';"" onmouseout=""this.style.backgroundColor='#e8e8e8';"">

您可以通过以下方式重新创建它:

复制这段文字:

<!-- CSS goes in the document HEAD or added to your external stylesheet -->
<style type="text/css">
table.hovertable 
 font-family: verdana,arial,sans-serif;
 font-size:11px;
 color:#333333;
 border-width: 1px;
 border-color: #999999;
 border-collapse: collapse;

table.hovertable th 
 background-color:#009fe3;
  color:#FFFFFF;
 border-width: 1px;
 padding: 8px;
 border-style: solid;
 border-color: #a9c6c9;

table.hovertable tr 
 background-color:#e8e8e8;


table.hovertable td 
 border-width: 1px;
 padding: 8px;
 border-style: solid;
 border-color: #a9c6c9;

</style>
<!-- Table goes in the document BODY -->
<table class="hovertable">
 <th colspan="4">Info Header</th>

<tr onmouseover="this.style.backgroundColor='#74eb61';" onmouseout="this.style.backgroundColor='#e8e8e8';">
 <td>Item 1A</td><td>Item 1B</td><td>Item 1C</td>
</tr>

<tr onmouseover="this.style.backgroundColor='#74eb61';" onmouseout="this.style.backgroundColor='#e8e8e8';">
 <td>Item 2A</td><td>Item 2B</td><td>Item 2C</td>
</tr>

<tr onmouseover="this.style.backgroundColor='#74eb61';" onmouseout="this.style.backgroundColor='#e8e8e8';">
 <td>Item 3A</td><td>Item 3B</td><td>Item 3C</td>
</tr>

<tr onmouseover="this.style.backgroundColor='#74eb61';" onmouseout="this.style.backgroundColor='#e8e8e8';">
 <td>Item 4A</td><td>Item 4B</td><td>Item 4C</td>
</tr>

<tr onmouseover="this.style.backgroundColor='#74eb61';" onmouseout="this.style.backgroundColor='#e8e8e8';">
 <td>Item 5A</td><td>Item 5B</td><td>Item 5C</td>
</tr>

</table>

并粘贴到 Excel 中的任何单元格

然后复制单元格内容并粘贴到记事本上,你会发现多余的引号

【问题讨论】:

删除字符串Stystr = Replace(Trim(wh.Range("A2").Text),"""","")中已有的引号 同样在声明Dim Stystr, endHTb, StRTb, tbstr, tbTag, ctb As String 中,只有ctb 被标注为String 类型。其他都是变种。要将它们全部标注为String 类型,请编写Dim Stystr as String, endHTb as String, StRTb as String ... @ScottHoltzman 不,我认为这不会起作用,因为每个 "" 都被 """" 替换,""" 替换,所以无法区分哪个需要替换 我不确定你所说的每个"" 都被"""" 替换并且""" 替换是什么意思?你在说我的公式吗?还是你的代码的结果? 您能否在设置变量后立即在Stystr 上执行 debug.print 并让我知道是否从一开始就出现了额外的引号?因为我刚刚对其进行了测试,并且无法复制您的问题(目前)。 【参考方案1】:

这是“设计行为”。剪贴板参与了将单元格值从 XL 传输到 Notepad++ 的过程,这意味着对文本字符串进行评估。有很多场景经过测试(我没有完整的列表),但您的粘贴操作似乎被解释为创建逗号分隔或制表符分隔的 TXT 导出文件。引号字符加倍,因为您的系统在 XL 到 TXT 导出中使用引号字符作为 文本限定符 特殊字符。

不幸的是,您不想要这种过渡行为,但许多其他人却想要。如果您需要绕过它,请在编辑模式下从编辑栏或单元格中复制文本字符串。这不是 Excel 所做的,甚至不是 Office 剪贴板 (OCB)。试图解释从 XL 到 Notepad++ 的传输是 Windows 剪贴板的行为。

【讨论】:

好的,知道了。谢谢 tbh,我也觉得这很烦人。任何过渡性转换应该都可以被绕过(例如右键单击、粘贴值类型行为)。 您关于复制“公式栏中的文本”的声明是一个很好的解决方案。谢谢

以上是关于当我从excel复制并粘贴到记事本时,每个引号后都有额外的引号的主要内容,如果未能解决你的问题,请参考以下文章

从word文档粘贴时输入字段单引号变成正方形

为啥我从网上复制的文字,粘贴到word后,文字颜色就变得很浅,在网上看文字也不浅啊

如图显示,求助怎么把excel中列的数据,导出到文本文档行的数据而且每个数据后带分号,谢谢了

CSV文件的双引号怎么去掉。用记事本打开有双引号,EXCEL打开又没有了,怎么样去掉这个双引号,这是个啥

怎样默认整个excel表无格式粘贴

SqlServer表和EXCEL数据互相复制方法