如何使用 xlwings 默认允许动态数组

问题描述 投票:0回答:1

我正在尝试创建一个脚本来填充单元格“A”处数组中的单元格

[2, 32, 62, 92, 122, 152, 182, 212, 242, 272, 302, 315, 328, 358, 388, 418, 448, 478, 508, 538, 568, 598, 628, 658, 688, 718, 748, 778, 808, 838, 868, 898, 928, 958, 988, 1018, 1048, 1078, 1108, 1138, 1168, 1176, 1184, 1194, 1204]
当我尝试

for row_number in beginning_location_array:
   cell_address = f"A{row_number}"
   sheet.range(cell_address).formula = f'{{=INDIRECT("Devices!A"&COUNTA(INDIRECT("A2:A"&ROW()-1))+2)}}'

它会自动放置@符号并阻止我的代码正确运行。这段代码不会溢出到相邻的单元格中,所以我对整个动态数组的想法有点困惑。有没有一种方法可以绕过这个问题,而不必在添加到的每个单元格上手动按 Control Shift Enter ?为什么我使用外部工具向Excel添加公式时会出现这种情况,而手动添加公式时却不会出现这种情况?

我尝试将公式用大括号括起来

Physical_Interfaces.range(cell_address).formula = f'{{=INDIRECT("Devices!A"&COUNTA(INDIRECT("A2:A"&ROW()-1))+2)}}'
这不起作用。

excel excel-formula xlwings
1个回答
0
投票

我找到了答案 使用 xlwings 的动态数组导致公式被 {} 包围

您需要使用.formula2或.formula_array

© www.soinside.com 2019 - 2024. All rights reserved.