当我从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后,文字颜色就变得很浅,在网上看文字也不浅啊
如图显示,求助怎么把excel中列的数据,导出到文本文档行的数据而且每个数据后带分号,谢谢了