我有一些Excel表格需要每个月都去处理,简而言之是我有若干个Excel子表格,需要从中提取出某些特定的数据,然后将这些子表格中的特定数据取出,放到一个汇总表当中,于是我在子表格下方写了很多Excel公式用于提取这些子表格中的特定数据,子表格每个月的格式大同小异,于是我就写了一段Py代码用于复制特定区域(子表格下方公式区域)到下个月的同名子表格的相同位置。
Ps:在书写公式时,发现相同文件夹目录下的Excel工作簿之间的引用在公式中以相对路径呈现,因此我每个月的子表格、汇总表名称都是相同的,只是所处的文件夹不同,例如都是桌面上的11月文件夹、12月文件夹。
然后代码能够读取到公式也能够复制,也能够粘贴,但是在粘贴时会在公式中某些位置添加@符号,进而导致公式计算错误(有的公式不受影响,有的受影响)这些@符号确实存在,我可以看到,也可以将其复制下来,可剪切下来,通过ctrl H替换为空后公式正常。但是通过print输出发现,Py无法发现所有公式中的@。不知如何解决,遂求教各位网友。

循环引用可能是提示INDEX的参数包括了F35单元格,但是这在上月表格中是可以正常计算的
F35=@INDEX(1:99,B33,D35) (所有的@都是复制后莫名添加的,所有表格所有内容均不含@)
D35计算正常,不存在@。
B33异常=MAX(IF(@A:A="员工小计",@ROW(A:A))),A列存在多个员工小计,这个单元格是读取最后一个的行号,因此采用了MAX函数。
import openpyxl
import os
#代码块1
# 获取用户输入的月份
month = input("请输入月份,(例如:11,12,1等):")
# 定义通用目录路径
base_path = r'C:\Users\Administrator\Desktop'
# 生成完整的目录路径
directory_path = os.path.join(base_path, f'{month}月')
# 获取目录下的所有文件和文件夹
file_list = os.listdir(directory_path)
# 打印文件列表
for file in file_list:
print(file)
# 函数:复制指定区域内容
def copy_range(src_sheet, src_range, dest_sheet, dest_start_cell):
# 获取源区域中的所有单元格
src_cells = src_sheet[src_range]
# 获取目标开始单元格的行和列
dest_start_row = dest_start_cell.row
dest_start_co

最低0.47元/天 解锁文章
400





