我编写了一个脚本,该脚本应该在满足条件的情况下移动某些单元格,但是不移动,而是删除了值。
我尝试分别运行每个代码块,并且每个代码块都可以正常运行,但是结合使用时,出现了问题。
import openpyxl
removal = ['a', 'b', '-c', 'c', 'd']
for num in range (8, ws.max_row):
for remove_item in removal:
if (ws['A'+str(num)].value.startswith('ABC') or ws['A'+str(num)].value.startswith('DEF')) and (ws['B'+str(num)].value.startswith(remove_item) or ws['B'+str(num)].value.endswith(remove_item) or ws['C'+str(num)].value.startswith('ok')):
ws.move_range('D'+str(num), cols=4)
ws.move_range('E'+str(num), cols=4)
无错误反馈。输出文件中删除了所有这些项目。
答案 0 :(得分:0)
您将空单元格移至新范围,从而覆盖了数据。
for remove_item in removal:
if <condition>:
ws.move_range('D'+str(num), cols=4)
由于多次满足if条件,因此将例如范围D8移至4列,然后再次将范围D8(现在不包含数据)移至4列,从而覆盖先前移动的数据。