【问题标题】:SetRange method returns NoneObject in pywin32SetRange 方法在 pywin32 中返回 NoneObject
【发布时间】:2019-06-10 09:31:10
【问题描述】:

我正在尝试使用 python 将 word 文档中表格单元格中的部分文本设为粗体。但我不知道该怎么做。

我已经尝试过使用带参数的 range 方法,但它返回的是字符串,而不是 range 对象。现在我试图在 Python 中调用 Range 对象的 SetRange 方法,但它使我的 Range 对象成为 NoneObject。

test = table.Cell(start_row + i, 3).Range.SetRange(1, 10).Bold = True

代码崩溃

AttributeError: 'NoneType' object has no attribute 'Bold'

我做错了什么?

【问题讨论】:

    标签: python python-3.x pywin32


    【解决方案1】:

    您没有正确使用它。检查[MS.Docs]: Range object (Word)

    • SetRange - 它的一种方法,不返回任何东西(翻译成 Python - 返回 None
    • 粗体 - 它的属性之一

    所以,你不应该链接 2. 修改你的代码:

    range_obj = table.Cell(start_row + i, 3).Range
    range_obj.SetRange(1, 10)
    range_obj.Bold = True
    

    【讨论】:

    • 谢谢!这如我所愿。我想补充一点,最后第二行应该看起来像这样range_obj.SetRange(range_obj.Start + 1, range_obj.Start + 10)。这样它只会影响单元格内​​的字符。
    • @AlexanderZh.: 这只是一个细节:)
    猜你喜欢
    • 2015-10-10
    • 2017-02-23
    • 1970-01-01
    • 2016-11-12
    • 1970-01-01
    • 1970-01-01
    • 2013-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多