使用 Excel 2013。
因此,我有一个工作簿(我们称之为 B 簿),它从另一个工作簿(源文件,A 簿)中提取一个表。没有花哨的连接或自定义查询,我使用 Excel 界面进行所有操作,除了禁用后台刷新外,没有进行任何更改。
当我更新 A 册中的原始表并刷新 B 册中的连接时,出现了问题。我输入的所有更新都会传递到除了单列中的数据。
我已填充 A 至 AA 列。更新后,O 列中的值(格式化为日期并按应有的方式显示)不会被转移。但这仅适用于新值。B 书中已存在的值保留在那里,但 A 书中存在但不在 B 书中的值不会被转移 - 让我重申一下,这只发生在 O 列中。
我尝试删除连接并再次添加 - 但没有成功。应该说这两个文件都存储在网络映射驱动器上。
我被施了什么巫术诅咒了?我该如何解决?
答案1
从我刚刚经历的头发颜色变化来看,我现在应该快退休了。我最初的评估是错误的——这些价值观是否已经存在于 B 书中,最终被证明是无关紧要的。
由于某些不正当的原因,如果日期值的格式不符合其单元格所要求的格式,则该值似乎不仅会被表格刷新忽略,而且似乎还会被在 VBA 中写入值的尝试忽略(但这是单独的主题)。
示例:如果单元格的日期格式为"dd:mm:yy"
,并且您粘贴了具有 的值"dd:mm:yyyy"
,则粘贴的格式不仅会保留(意味着值将以粘贴的格式显示,但如果您检查单元格应具有的格式,它会显示您最初设置的格式),但其他东西似乎也“错误” - 特别是通过日期默认左对齐的方式可见,而它应该右对齐。我不确定为什么会发生这种情况,但它一定与源材料有关(我粘贴的是 1996 年编写的程序中的数据,因此我假设后台存在一些字符集故障,尽管我在进行最终插入之前努力以编程方式更正日期格式)。
无论如何 - 在这种情况下,该值不会在表刷新期间保留。在刷新之前对相关列进行没有分隔符的文本到列调用可以解决所有问题。