我将一个CSV文件导入Calc。不幸的是,将文本字段格式化为Calc中的日期字段会留下前导'。
我编写了以下函数,但继续得到错误508 - 包围错误。我已经重新加入了一些不同的方式,但我不是很精通VBA。
=IF('sheet1'!(LEFT(G4, 1) = "'"); ('sheet1'!H4 = (RIGHT(G4, 10))))
答案 0 :(得分:0)
OpenOffice使用分号分隔符而不是Excel所需的逗号分隔符。用分号替换LEFT和RIGHT函数中的逗号。
OpenOffice在工作表名称后使用点分隔符。用点替换感叹号。
工作表名称必须立即进行单元名称。将第一个工作表名称移到LEFT函数内,使其立即进入G4。
如果测试为真,则IF函数中的第二个参数是您想要显示的参数。应该没有比较器,例如=意味着您需要删除"' sheet1'!H4 ="。
采取所有这些步骤将停止错误消息,但它不会解决您的问题。
继续,您的IF语句是一个电子表格函数。 VBA用于在Microsoft Office产品(如Excel)中编写宏。 StarBasic在Calc中是等价的。您没有在VBA或Basic的任何其他变体中编写任何内容。这两种语言都与电子表格功能无关。您正在编写电子表格方程式。
更重要的是,领先'不被视为单元格内容的一部分,并且LEFT函数无法检测到,也无法通过RIGHT函数删除。 最好通过重新打开CSV文件并更改导入过滤器设置来解决问题,以便将日期正确导入为日期。
第二个选项是突出显示所有带日期的单元格,然后选择菜单命令Data-> Text To Columns,然后单击OK。使用文本到列后,您可能需要右键单击单元格,选择"格式化单元格",查看选项卡" Numbers"并选择选项"日期" (然后按OK)。