AttributeError: <unknown>.Range

AttributeError: <unknown>.Range

我正在尝试使用 "fill series" 自动填充,将两个工作表上的单元格 A11 的值格式化为 A12。这需要使用 win32com 模块来实现。我的代码是:

from win32com.client import Dispatch
from win32com.client import constants
xl = Dispatch('Excel.Application')
xl.Visible = True
wb = xl.Workbooks.Open ('S:\Height Peak.xls')
ws = wb.Worksheets(['Sheet1','Sheet2'])
ws.Select()
ws.Range('A10:A11').AutoFill(ws.Range('A11:A12'), xlFillSeries)

当我 运行 代码时,我遇到了以下错误:

AttributeError: unknown.Range

有 3 个问题:

  • 1) 您需要遍历您的工作表!
  • 2)源Range 需要是填充范围的子范围。这没有很好地记录 我基本上只是通过查看 文档。
  • 3) 你导入常量,但你需要实际指定你的 常数的来源! (见下文

代码:

from win32com.client import Dispatch
from win32com.client import constants as const

xl = Dispatch('Excel.Application')
xl.Visible = True
wb = xl.Workbooks.Open ('S:\Height Peak.xls')

ws = wb.Worksheets
for sheet in ws:
    if sheet.Name.endswith("1") or sheet.Name.endswith("2"):
        sourceRange = sheet.Range('A1:A10')
        fillRange = sheet.Range('A1:A12')
        sourceRange.AutoFill(fillRange, const.xlFillSeries)