【发布时间】:2018-01-12 20:44:58
【问题描述】:
是否可以在 .xlsx 中将单元格留空?
我有一个过程,通过该过程 vlookup 在禁用宏的计算机上填充电子表格。结果数据被复制/粘贴值并保存在新工作簿中。我们有一个问题,即由公式创建的具有空字符串的单元格在 xml 节点中被保存为 0。当稍后由我们无法控制的外部进程读取数据时,这会导致问题。
类似的问题经常被问到(examples、found、here)关于创建或保留空白单元格,但没有一个足够具体到得出实际答案(更多类似于“你不知道想要这样做,就这样做吧”)。
要复制此内容,请打开一个新的 Excel 电子表格 (2007-2016),将公式 ="" 放在 B2 中,选择整个工作表,然后复制并粘贴值。正如预期的那样,它将显示为空白,并且 xlLastCell 将是 B2 而不是 A1。即使使用activesheet.usedrange,它也不会将 xlLastCell 重置为 A1,因为 B2 实际上确实有一个值。在文本查看器中保存和检查数据时(将扩展名从 .xlsx 更改为 .zip,提取并打开 \xl\worksheets\sheet1.xml 以供不熟悉的人使用),您会看到在 sheetData 节点中只有一个值,它是B2下的节点,它显示0(这不等同于已粘贴到该单元格中的空字符串)。当你在那里时,对于那些已经想到使用撇号的有进取心和创造性的灵魂,你可以在 B3 中测试它并发现结果节点完全相同,0。查找替换不起作用因为,在我们的示例电子表格中,当为空字符串选择“查找全部”时,它只找到 A1,您还记得我们没有输入(根本找不到 0)。
有没有办法通过这种方法在生成的 xml 中实际将值节点留空(或至少为空字符串)?
问题可能是,为什么不使用 .csv/平面文件?为什么不自己做呢?为该用户启用宏?为什么不花 20-30 小时编写一个 .Net 程序来使用 xml 构建电子表格并在完成时将其压缩起来?或者简单地说,“你不想那样做,为什么不这样做呢”?这些已由委员会审查并发现次优。我们只是运气不好?
Excel 是否根本无法将空字符串保存为整数 0 以外的任何内容?
【问题讨论】:
-
如果您愿意更改公式,您可以通过两个额外的手动步骤来修复它。而不是使用
""将单元格留空。也许能做到。"-"。然后将公式复制为值。然后用空白替换-的值(在替换选项上使用查找值)。然后你会有空单元格。
标签: excel