0

Excelマクロを使用してWordファイルを開こうとし、Excelからいくつかのデータをコピーして、開いたWordファイルに貼り付けました。次に、Excelファイルと同じディレクトリにWordファイルとして保存します。しかし、エラーに直面しています。助けてください。これが私のコードです。

enter code here

Sub OICD()


 Const strPath As String = "C:\Users\owner\Desktop\OICD TEMPLATES\OICD_"
    Dim strFileName As String

    strFileName = InputBox("Please enter file name", "Create new file")
    If strFileName = vbNullString Then Exit Sub
Dim Word As Object: Set Word = CreateObject("word.application")
Dim docWD As Word.Document
Word.Visible = True

 Set docWD = Word.Documents.Open("C:\Users\owner\Desktop\OICD TEMPLATES\OICD Template V1.docx")


docWD.SaveAs ThisWorkbook.Path & "\" & strFileName), FileFormat:=wdFormatDocument
ThisWorkbook.Sheets("REPORT").Range("C7:J56").Copy
Word.Selection.Paste


End Sub
4

2 に答える 2

1

さまざまな理由でコードが失敗します。問題を簡単に見つけるためにデバッグする方法を学ぶ必要があります (コードから実行し、特定の理由で特定の行でクラッシュするまで f8 キーを押します)。

このバージョンはあなたが望むことをします:

Sub OICD()

    Const strPath As String = "C:\Users\owner\Desktop\OICD TEMPLATES\OICD_\" 'The last characters has to be a "\"
    Dim strFileName As String
    Dim extension As String

    strFileName = InputBox("Please enter file name", "Create new file")
    If strFileName = vbNullString Then Exit Sub

    extension = ".docx" '".doc"

    Dim Word As Object: Set Word = CreateObject("Word.Application")

    Word.Visible = True

    Set docWD = Word.Documents.Open(strPath & strFileName & extension)


    docWD.SaveAs ThisWorkbook.Path & "\" & strFileName, FileFormat:=wdFormatDocument
    ThisWorkbook.Sheets("REPORT").Range("C7:J56").Copy
    Word.Selection.Paste


End Sub
于 2013-06-20T07:53:47.667 に答える
1
          Option Explicit
          Sub Wordcreation()
       Dim WdObj As Object, fname As String
      fname = "Word"
     Set WdObj = CreateObject("Word.Application")
    WdObj.Visible = False
     Range("A1:E8").Select
   Selection.Copy 'Your Copy Range
   WdObj.Documents.Add
  WdObj.Selection.PasteSpecial
   Application.CutCopyMode = False
    If fname <> "" Then 'make sure fname is not blank
      With WdObj
      .ChangeFileOpenDirectory "D:\chandra" 'save Dir
       .ActiveDocument.SaveAs Filename:=fname & "Chandra.doc"
        End With
       Else:
       MsgBox ("File not saved, naming range was botched, guess again.")
        End If
      With WdObj
        .ActiveDocument.Close
        .Quit
       End With
     Set WdObj = Nothing
     End Sub
于 2013-11-21T04:40:07.987 に答える