我已经为此尝试了 4 种类型的代码,例如: 我已经在寻找各种各样的问题,但我仍然无法解决它
cc2 = 2
cc2i = 2
while cc2 < 5000:
while cc2i < 5000:
ws['c{}'.format(int(cc2))] = ArrayFormula("c{}:c{}".format(int(cc2), 5000), "=upper(Input!f{}".format(int(cc2i))+")")
cc2 += 5
cc2i += 1`
#or
cc2 = 2
cc2i = 2
while cc2 < 5000:
while cc2i < 5000:
ws['c{}'.format(str(cc2))] = ArrayFormula("c{}:c{}".format(str(cc2), 5000), "=upper(Input!f{}".format(str(cc2i))+")")
cc2 += 5
cc2i += 1
#or
for cc2 in range(2, 5000, 5):
for cc2i in range(2, 5000, 1)
ws['c{}'.format(int(cc2))] = ArrayFormula("c{}:c{}".format(int(cc2), 5000), "=upper(Input!f{}".format(int(cc2i))+")")
#or
for cc2 in range(2, 5000, 5):
for cc2i in range(2, 5000, 1)
ws['c{}'.format(str(cc2))] = ArrayFormula("c{}:c{}".format(str(cc2), 5000), "=upper(Input!f{}".format(str(cc2i))+")")
我期望得到的是
ws['c2'] = '=input!f2'
ws['c7'] = '=input!f3'
ws['c12'] = '=input!f4'
等等
但我得到的是
ws['c2'] = '=input!f2'
ws['c3'] = '=input!f2'
ws['c4'] = '=input!f2'
等等
看起来你想要的只是下面的代码示例; 在循环中;
因此在cell坐标中使用cc2;
ws[f'c{cc2}']
将引用单元格
ws[c2],ws[c7],ws[c12],ws[c17],ws[c22],ws[c27],ws[c32],ws[c37],ws[c42],ws[c47] ,ws[c52] ...
引用 F 单元格的相应公式将增加 1。不确定您的公式应该包含什么,因为您的代码说明了一件事,而您的预期和实际输出表明另一件事。
无论公式的组成如何,F 单元格引用都将是;
F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11...
示例代码
for cc2i, cc2 in enumerate(range(2, 5000, 5),1):
ws[f'c{cc2}'] = f'=UPPER(Input!F{cc2i})'