Word VBA为OMath公式添加批注出现Type Mismatch错误如何修正
VBA为Word OMath公式添加批注时类型不匹配的修复方案
错误原因
- 代码中
objEq被声明为OMath类型,但Comments.Add方法的返回值是Comment对象,二者类型不匹配,因此尽管批注成功添加,最后的赋值步骤仍会触发类型不匹配错误。 - 原代码使用
Selection.Range作为批注锚点不够严谨,若选区发生变动会导致批注绑定位置错误。
修复代码
方案1:无需保留批注对象引用(最简修改)
Sub EquTest() Dim objRange As Range Dim objEq As OMath Set objRange = Selection.Range objRange.Text = "Celsius = (5/9)(Fahrenheit - 32)" Set objRange = Selection.OMaths.Add(objRange) Set objEq = objRange.OMaths(1) objEq.BuildUp ' 直接调用添加批注方法,不进行赋值操作避免类型冲突 objEq.Range.Comments.Add objEq.Range, "Blah Blah" End Sub
方案2:需要保留批注对象用于后续操作
Sub EquTest() Dim objRange As Range Dim objEq As OMath Dim objComment As Comment ' 单独声明匹配类型的变量接收批注对象 Set objRange = Selection.Range objRange.Text = "Celsius = (5/9)(Fahrenheit - 32)" Set objRange = Selection.OMaths.Add(objRange) Set objEq = objRange.OMaths(1) objEq.BuildUp Set objComment = objEq.Range.Comments.Add(objEq.Range, "Blah Blah") End Sub
内容的提问来源于stack exchange,提问作者Andrew Melbourne
相关产品推荐
相关产品推荐

