2017-08-24 16 views
0

Excelシートの情報を使用してワードドキュメントを自動入力しようとしています。私は、ユーザーが目的のExcelファイルを選択できるようにして、Excelファイルの特定の範囲を特定の範囲にコピーして、特定の領域に単語に貼り付けるようにします。これまでのところ私は自分の選択のExcelファイルを開くことができましたが、範囲の選択と特定の場所への貼り付けがどのように機能するかはわかりません。また、私はVBAという言葉を使ってこのすべてをやっていますし、単語VBAを使ってペーストの範囲をコピーしたいと思っています。私はMainという名前のシートからセルC25をコピーしようとしています。テーブルはSummaryという名前のシートからA5からC28の範囲にあります。セルC25は名前なので、私はそれを単語docに入れたいと思います。行の後に親愛なる名前とポストテーブルを入れてください。以下の要約を参照してください:これは私がこれまでに持っていて、ファイルを選択して開くことができます。シートからExcelの範囲をコピーして、単語vbaを使用して特定の場所に単語の特定の場所に配置する方法

Sub Macro1_FileOpen() 
' 
' Macro1_FileOpen Macro 
' 
' 
'Dim FilePath As Object 
'Dim dSource As String 

'With Me.Application.FileDialog(Microsoft.Office.Core.MsoFileDialogType.msoFileDialogOpen) 

    ' .AllowMultiSelect = True 
    '.Filters.Clear 
    '.Filters.Add "Excel Files", "*.xls;*.xlw" 
    ' .Filters.Add "All Files", "*.*" 

    ' If .Show = True Then 
    ' .Execute() 
    'End If 
'End With 

Dim xlApp As Object 
Dim xlBook As Object 
Dim dSource As String 
Dim ExcelWasNotRunning As Boolean 
Dim MyDOc As Word.Document 
Dim fd As FileDialog 




Set fd = Application.FileDialog(msoFileDialogFilePicker) 
With fd 
    .Title = "Select the file that you wish to use." 
    .InitialFileName = strFolder 
    .Filters.Clear 
    .Filters.Add "Excel Files", "*.xls?" 
    .AllowMultiSelect = False 
    If .Show = -1 Then 
     dSource = .SelectedItems(1) 
    Else 
     MsgBox "You cancelled the operation" 
     Exit Sub 
    End If 
End With 
On Error Resume Next 
Set xlApp = GetObject(, "Excel.Application") 
If Err Then 
    ExcelWasNotRunning = True 
    Set xlApp = CreateObject("Excel.Application") 
End If 
On Error GoTo 0 
With xlApp 
    Set xlBook = .Workbooks.Open(dSource) 
    MsgBox "The workbook" & vbCr & dSource & vbCr & "is open!" 

    'Insert code to do what you need to do with the workbook here 



    Set xlBook = Nothing 
End With 
If ExcelWasNotRunning Then 
    xlApp.Quit 
End If 
Set xlBook = Nothing 
Set xlApp = Nothing 
Set fd = Nothing 
End Sub 

答えて

0

これは、マラソンの最初のマイルの後に疲れた足の場合のようです:-)。あなたは、あなたが始めたやり方でやり直しを続けるだけです。しかし、すべてをObjectとして宣言しないでください。 xlAppはExcel.Applicationです。 xlBookはExcel.Workbookです。 MyDocはWord.Documentですが、Wordからコードを実行しているときにWordを指定する必要はありません。

ただし、MyDocを設定する必要があります(Set MyDoc = ActiveDocumentなど)。 を宣言するDim Ws As Excel.WorksheetSet Ws = xlBook.Worksheets("Main") xlBookからテキストを取り出すには文字列が必要です。だからDim Tmp As String。 次に、Tmp = Ws.Cells(25, "C").Valueと言って、MyDocで場所を探してそこに挿入します。

次に、あなたが実際に、私はこれが動作することを確認してください決して思いDim Tbl As Table

Set Ws = xlBook.Worksheets("Summary") 
With Ws 
    Set Tbl = .Range(.Cells(5, "A"), .Cells(28, "C")) 
End With 

を宣言することができます - Wordの表にExcelの範囲を割り当てる - しかし、そうでない場合は、コピーだけでみてくださいExcel.Rangeを直接Word文書に挿入するか、実行中に手順を記録してみるか、ここでExcelの範囲をWord文書にコピーする方法について具体的な質問をしてください。私がここで作ろうとしているのは、疲れていると説明できない問題が発生する前に、プロジェクトに取り組むべき大胆な作業がたくさんあることです。良い仕事を続けてください。そして成功を祈る! (フォローアップの質問のように見えるものは避けてください:)

関連する問題