先将WORD文件从服务器下载到本地(Inet)
bData() = PWPInet.OpenURL(strURL, 1)
Put #intFile, , bData()
置于本地临时文件夹下
在打开时set doc = wdApp.documents.open(path,true,false,false)
对其进行排版其中设置页边距时出现了问题
With Selection.PageSetup
.LeftMargin = CentimetersToPoints(argary(0))
.RightMargin = CentimetersToPoints(argary(1))
.TopMargin = CentimetersToPoints(argary(2))
.BottomMargin = CentimetersToPoints(argary(3))
End With
第一次运行没问题,能正确设置页边距。但关闭此文档并且不保存,第二次打开此文件(从服务器重新下载并覆盖原来临时目录下文件)时,以上语句并不执行,页边距还是WORD默认值。也曾试着把Selection换成doc或section都不行。请问各位高手,这是怎么回事呀?
bData() = PWPInet.OpenURL(strURL, 1)
Put #intFile, , bData()
置于本地临时文件夹下
在打开时set doc = wdApp.documents.open(path,true,false,false)
对其进行排版其中设置页边距时出现了问题
With Selection.PageSetup
.LeftMargin = CentimetersToPoints(argary(0))
.RightMargin = CentimetersToPoints(argary(1))
.TopMargin = CentimetersToPoints(argary(2))
.BottomMargin = CentimetersToPoints(argary(3))
End With
第一次运行没问题,能正确设置页边距。但关闭此文档并且不保存,第二次打开此文件(从服务器重新下载并覆盖原来临时目录下文件)时,以上语句并不执行,页边距还是WORD默认值。也曾试着把Selection换成doc或section都不行。请问各位高手,这是怎么回事呀?
解决方案 »
- vb连接有密码access的请问下面的语句错在哪里?
- 今天9.18,散点分。勿忘国耻!
- VB调用VC的dLL时,怎样才能传递一个字符串地址,令变量的值在DLL函数中改变,如:
- GB_2312 编码的范围是从那里到那里?
- 可不可以将dbgrid 的datasource 的值设置为recordset对象?
- 请教VB打印高手
- 请教高手帮忙!!!
- Intelement 在 VB 非技术类论坛发表的散分帖子(6)
- ADO如何连接SYBASE11.9的问题?请高手解答指点!
- vb程序不知道哪儿错了别纠结那个CreateObject("wmplayer.ocx")谢谢
- 怎样用单机版加密狗加密网络版软件?
- 请教如何在VB中使用代码打印出底纹
Selection和CentimetersToPoints前面都要加wdApp.如果这不是问题,你所谓不执行是什么意思?出错了?有没有在出错器(debugger)里调试?
改成With wdApp.Selection.PageSetup记住:所有语句都要以定义好的对象开始!
第一次是没问题啦,可是奇怪的是如果第一次不保存,再打开WORD就不好用了,而且只是这段代码不好用。如果刷新一下网页就没问题了,可第一次打开时和以后重复操作(前一次不保存)每次文档是重新下载的,程序又是一样的,参数传递没问题,而页边距就是不变了。
我现在怀疑两点:
1.第一次打开时是利用Inet控件把WORD文档下载到本地临时文件夹下,而再次打开又重新下载,覆盖以前的文档。是不是覆盖时产生问题。
2.第一次虽然关闭winword.exe但是否仍然存在于内存(尽管在任务管理器中看不到),当二次打开时第一次wdApp影响了以后的打开。
可最令我头疼的是其它的代码都好用:
With doc.Paragraphs(doc.Paragraphs.Count).Range.Font
.NameFarEast = argary(0)
.NameAscii = "Times New Roman"
.NameOther = "Times New Roman"
.Name = argary(0)
.Size = argary(1)
.Color = wdColorBlack
End With
Call doc.Range.InsertAfter(argary(2))
Call doc.Range.InsertParagraphAfter
doc.Paragraphs(doc.Paragraphs.Count).Range.InlineShapes.AddHorizontalLineStandard
doc.InlineShapes(doc.InlineShapes.Count).HorizontalLineFormat.NoShade = True
doc.InlineShapes(doc.InlineShapes.Count).Fill.Solid
doc.InlineShapes(doc.InlineShapes.Count).Fill.ForeColor.RGB = RGB(0, 0, 0)
doc.InlineShapes(doc.InlineShapes.Count).Height = 1.5
End If
'印发部门信息
If PrintDep <> "" Then
Number = Number + 2
' Call doc.Range.InsertParagraphAfter
argary = Split(PrintDep, "`")
With doc.Paragraphs(doc.Paragraphs.Count).Range.Font
.NameFarEast = argary(0)
.NameAscii = "Times New Roman"
.NameOther = "Times New Roman"
.Name = argary(0)
.Size = argary(1)
.Color = wdColorBlack
End With
Call doc.Range.InsertAfter(argary(2))
Call doc.Range.InsertParagraphAfter
doc.Paragraphs(doc.Paragraphs.Count).Range.InlineShapes.AddHorizontalLineStandard
doc.InlineShapes(doc.InlineShapes.Count).HorizontalLineFormat.NoShade = True
doc.InlineShapes(doc.InlineShapes.Count).Fill.Solid
doc.InlineShapes(doc.InlineShapes.Count).Fill.ForeColor.RGB = RGB(0, 0, 0)
doc.InlineShapes(doc.InlineShapes.Count).Height = 1.5这些都没问题,重复打开都运行的很好。