【问题标题】:Opening word 2007 from vb 6从 vb 6 开始词 2007
【发布时间】:2011-09-18 22:33:48
【问题描述】:

我有一个正在尝试在 Windows Server 2003 上调试的遗留项目。 1) 我无法让应用程序打开 word 2007(安装在该机器上)
2) 我知道应用程序在编写时确实在其他计算机上打开 - 这些计算机正在运行 xp 或 windows 终端服务器,
3) 应用程序以标准打开
声明

Private wdApplication           As Word.Application

和代码

  Set wdApplication = GetObject(, "Word.Application")
  If wdApplication Is Nothing Then Set wdApplication = CreateObject("Word.Application")
      If wdApplication Is Nothing Then
         Kill sFileName
  End If
  ' other code
   end if

关于我需要设置的 Windows 服务器没有设置的任何想法
谢谢 我尝试了建议的方法,但没有成功 我查看了我继承的代码库,发现了一个可以正确运行 word 的应用程序,它是由另一个人设置的(显然)
它使用一个类来连接具有这些功能的单词

Option Explicit
Private bIsNewApp As Boolean
Private sErrorStr As String
Private oWordApp As Object
Private ys As YouthSoft

Public Sub MakeVisible()
  oWordApp.Visible = True
  oWordApp.ActiveDocument.Select
  oWordApp.Selection.GoTo 1, 1
End Sub
Public Sub StartWord()

  'Set oWordApp = GetObject(, "Word.Application")
  If oWordApp Is Nothing Then
    Set oWordApp = CreateObject("Word.Application")
    If oWordApp Is Nothing Then
      sErrorStr = "Microsoft Word could not be located or started. OLE Automation Error"
    Else
      bIsNewApp = True
    End If
  Else
    bIsNewApp = False
  End If

End Sub

这个和我应该看到的其他代码之间有什么区别吗 我浏览了这两个项目的参考资料和组件,它们在这个功能领域是相同的

【问题讨论】:

  • 在声明中尝试使用此更改的后期绑定方法调用:Private wdApplication As Object

标签: windows vb6 ms-word


【解决方案1】:

问题可能是 Word 应用程序实例 DID 加载但被隐藏。

尝试以下方法,它总是对我有用:

Dim WD As New Word.Application
WD.Visible = True
'from here Word should open and have no active documents opened
'here is how to open documents
WD.Documents.Open "C:\FileName.doc"

【讨论】:

    【解决方案2】:

    添加对“Microsoft Word {VersionNumber} 对象库”的引用。

    如果可行,试试这个,

    Dim objWord As New Word.Application
    Dim ActiveWord As New Word.Document
    
    Set objWord = New Word.Application
    Set ActiveWord = objWord.Documents.Add(, , wdNewBlankDocument)
    objWord.Visible = True
    objWord.Activate
    
    
    
    With ActiveWord
        .PageSetup.TopMargin = 1 * 72
        .PageSetup.BottomMargin = 1 * 72
        .PageSetup.LeftMargin = 1.25 * 72
        .PageSetup.RightMargin = 1.25 * 72
        .ActiveWindow.Application.Selection.TypeText "Test"
    End With
    
    Set objWord = Nothing
    Set ActiveWord = Nothing
    

    【讨论】:

    • +1,当您创建对象时,单词窗口不一定是可见的。 OP 不指示是否存在错误,或者 WINWORD.EXE 是否出现在 taskman 进程列表中。如果它在进程列表中,它会被不可见地加载。
    • 谢谢大家,我有应该是正确的对象库 (12),我尝试了 Nick Binnet 的代码,但它仍然没有启动它。我搜索了服务器上的其他遗留应用程序,发现一个确实打开了“代码”如果 wdApplication Is Nothing Then Set wdApplication = New Word.Application 'code'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多