pywin32 中的 SetRange 方法 returns NoneObject

SetRange method returns NoneObject in pywin32

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

我已经尝试过使用带参数的范围方法,但它是 returns 字符串,而不是范围对象。现在我试图在 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'

我做错了什么?

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

  • SetRange - 它的方法之一,没有 return 任何东西(翻译为 Python - returns None)
  • Bold - 它的属性之一

所以,您不应该链接 2。将您的代码修改为:

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