如何获得word段落格式?如“标题1”“正文”

ppby2002 2011-12-05 12:56:10
现在用vb.net2010来读取word2003,客户要求如果当前段落格式是“标题1”,则把更改字体为黑体,字号为5号。
在word vba里,可以使用如下方式判断

dim p as paragaph
...
if p.style = "标题 1" then
' do formatting
end if

但是在vb.net里边这样写报如下错误
重载决策失败,因为没有 Public“=”可以用这些参数调用:
'Public Shared Operator =(a As String, b As String) As Boolean':
与参数“a”匹配的参数无法从“__ComObject”转换为“String”。

是因为这个com对象不能被.net正确包装么?
...全文
312 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ppby2002 2011-12-13
  • 打赏
  • 举报
回复
谢谢,终于搞定了,我用的office12也可以了
X-i-n 2011-12-13
  • 打赏
  • 举报
回复
测试了一下,.net里比较抽疯,你把p.style改成 p.style.namelocal就可以了
X-i-n 2011-12-13
  • 打赏
  • 举报
回复
你写p.style的时候它不会提示你进一步的namelocal属性,你照着写,执行了看效果。
或者你定义一个 style对象 stl, 然后看stl的属性
我的是VS2008,office2010,引用的microsoft word 14
ppby2002 2011-12-13
  • 打赏
  • 举报
回复
我用的是vb.net2010,word2003,pargraph对象里没有namelocal这个方法。
能告诉我你用的版本,引用的是哪个dll么?
ppby2002 2011-12-12
  • 打赏
  • 举报
回复
我的测试代码是这样

Dim p As Word.Paragraph = doc.Paragraphs(1)

'MsgBox(p.Style) rem 这句出错

If p.Style = "标题 1" Then
Debug.WriteLine("Found heading1 ")
End If

在vb.net里 MsgBox(p.Style) 抛出如下错误
参数“Prompt”无法转换为类型“String”

p.Style = "标题 1" 这句就报重载=操作符的错误了。
我觉得是因为vb.net编译器重载了=操作符,两边的参数必须相同(string),但是左侧的是__ComObject无法转换为string。
怎么才能得到style的文本表示呢?
X-i-n 2011-12-08
  • 打赏
  • 举报
回复
p.style的结果就是它的标题名称
msgbox p.style 它就会直接弹出给你 "标题 1"
现在的问题是 Public Shared Operator =(a As String, b As String) As Boolean 这一句
把 a as string,改成 a,试试看先。如果不管用,想看看你的代码。
ppby2002 2011-12-07
  • 打赏
  • 举报
回复
请问如何能得到 p.style 对应的标题名称?
X-i-n 2011-12-06
  • 打赏
  • 举报
回复
问题出在a上.a的类型是comobject而非string,你在这把它定义成了string。

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧