当语言环境需要逗号 (1,7) 时,处理带点的小数点 (1.7) 的粘贴

当语言环境需要逗号 (1,7) 时,处理带点的小数点 (1.7) 的粘贴

我有一个数据源,其中点用作小数分隔符,即 :1.49表示“一又将近一半”。无法更改它。

必须将此数字复制粘贴到 Excel 或 Calc 中的数字单元格中。该文件是公开的,任何人都可以获取它(在这里获取) 所以我无法控制用户电脑/程序。

大多数用户是意大利人,使用 it_IT 语言环境,其中小数点以逗号分隔,即:1,49表示“一又将近一半”(请注意,用逗号代替点)。

当意大利语言环境的用户尝试从数据源复制粘贴1.49到他/她的数字单元格中时,Calc/Excel 会出现问题,因为它无法识别该数字为小数。

如果我在单元格上设置语言,一切都会正常工作……直到我关闭程序。如果我再次打开文档,设置就会丢失,并且不再起作用

在此处输入图片描述

所以,我的问题是:

  1. 无论用户定义的语言环境如何,是否可以强制将文件/工作表的语言环境设置为“en_US”?
  2. 是否可以保留语言属性?
  3. 还有其他想法吗?(请不要“要求您的用户更改设置”)

如果可能的话,我宁愿避免使用宏。

谢谢!

更新:我使用的是 Windows 10 x64,刚刚升级到 LibreOffice 5.4.4 x64。每个单元格的语言设置仍然没有保存。我甚至不清楚它是否应该要保存还是仅仅是一个视图设置(猜测是前者,因为当我这样做时保存按钮就会亮起。)

答案1

TurboLab.it 上的我的朋友们建议的迄今为止最好的解决方案:

  1. 将用于接受用户输入的单元格设置为“文本”
  2. 在附近的临时单元格中,将点号和逗号替换为类似=SUBSTITUTE(E16;".";",")
  3. 对替换值进行计算
  4. 如果需要的话重新转换

对于那些感兴趣的人,最终文件是可在此处获取

唯一的主要缺点是,这仅当用户的区域设置以“逗号”作为小数点分隔符(例如意大利语)时才有效。

嗨嗨。

答案2

手动解决方案,每次粘贴时都要重复:

复制和粘贴后,选择粘贴的单元格...
立即使用查找和替换,首先将任何“。”(千位分隔符)替换为“”(即“无”),然后将“,”(原始小数分隔符)替换为“。”(新的小数分隔符)。

您可能需要使用“选择性粘贴”来添加 0 或乘以 1,才能将它们解释为数字(==> 在任意单元格中放置 1 或 0,复制它,然后执行“选择性粘贴”并选择“添加值”或“乘以值”)

自动化:“录制宏”,执行上述操作,“停止录制”。您还可以在其中指定快捷键。

相关内容