当没有匹配的格式部分时,range.find方法不会返回任何内容

下面的function是作为文本,文本文件的一个粗体部分。 方块是作为范围传递给函数的。

Private Function GetFirstBoldPartofAPharagraph(rngPharagraph) As String With rngPharagraph.Find .ClearFormatting .Font.Bold = True .Execute Format:=True End With rngPharagraph.Select GetFirstBoldPartofAPharagraph = rngPharagraph.Text Set rng = Nothing End Function 

这里的rngPharagraph来自myRangelngPar是一个word文档的数字)

 Set myRange = objDoc.Paragraphs(lngPar).Range 

此代码将在Excel工作表中执行。 问题是,如果有一个大胆的部分,它发现和rngPharagraph.Text获取该部分; 但如果没有大胆的部分rngPharagraph.text返回所有的方法,而不是返回nothing

使用Find属性检查Find对象结果:

 Private Function GetFirstBoldPartofAPharagraph(rngPharagraph As Range) As String With rngPharagraph.Find .ClearFormatting .Font.Bold = True .Execute Format:=True End With If rngPharagraph.Find.Found Then rngPharagraph.Select GetFirstBoldPartofAPharagraph = rngPharagraph.Text End If End Function