当将表格数据准备为文本以通过剪贴板复制到 Excel 时,是否可以取消某些单元格的格式化?(如果可能的话,无需更改 Excel 设置或进行特殊粘贴)。
在一个简单的标准情况下,我有一行“列标题”(文本),其余行包含数字数据
foo bar asdf
1 2 3
现在,问题是有时我收到包含日期内容的标题,而 Excel 决定将其格式化为日期(有时为数字)。我希望 Excel 不对这些内容进行格式化
手动将文本输入单元格时,我可以通过在该单元格内容前添加单引号 (') 来实现。但如果我将以下内容复制到剪贴板并粘贴:
foo '1 asdf
1 2 3
然后屏幕上就会出现“1”。我不确定是否有解决方案,但如果有人有办法,那就太好了 =)
我为什么要问这个问题:我的情况是我有一个程序,可以将表格数据(作为文本)复制到剪贴板(转换为 Excel)。
编辑:一些澄清:
- 我想做一些事情让第一行的单元格不被格式化
- 也澄清了实际问题
- 最佳情况是,最终用户进行粘贴时不需要进行任何特殊的粘贴
- 我不确定这是否可能,如果是这种情况,我应该找到某种以更自定义的方式导出数据,但这是属于 stackoverflow.com 的另一个故事。
br,Touko
答案1
将表格复制到剪贴板后,您可以使用 Excel 2007/2010 中粘贴菜单下的文本导入向导。如果您使用的是 Office 2003 或更早版本,则可以从外部文本文件导入表格,有关详细信息,请参阅本文。
在文本导入向导的第 3 步,您可以选择指定列数据格式。选择要更改的列并选择适当的格式。
答案2
将标题行的数字格式设置为文本粘贴数据之前。右键单击行 >格式化单元格>数字> 选择文本。无论您粘贴到单元格中的任何值都将转换为字符串。
现在,如果您需要使用标题进行计算,请使用公式VALUE
。
例子:
如果粘贴
12/23/2011
在单元格中 B1,即使您随后更改其数字格式,它仍将显示为“12/23/2011”。该公式
VALUE(B1)
将返回 2011 年 12 月 23 日的实际日期值(十进制为 40900)。如果粘贴
234
在单元格中B1,即使您随后更改其数字格式,它仍会显示为“234”。公式 VALUE(B1) 将返回小数 234。
答案3
我刚才问的时候发现了这一点同样的问题!
您需要使用公式=TEXT(<val>,"#")
,其中<val>
第一个参数是取任意值,第二个参数是文本的格式。在我的例子中,所有数字都是"#"
这样,所以使用公式即可,所以您的结果可能会有所不同。这是一个老问题,但就我个人而言,我很高兴我解决了这个问题,所以我想分享一下,以防其他人遇到同样的情况!