2013-12-16 2 views
0

Excel에서 셀을 Excel로 복사하는 Excel 매크로를 만들려고합니다. 나는 시트 1에서 그것을 Excel 1에서 테이블 1로 가져갈 필요가있다.VBA 셀을 Excel에서 Excel로 복사하려면

루프를 통해이 작업을 수행해야하며 (예 : 셀에서 작업을 수행해야하므로) 어떻게 수행해야합니까? 그래도 난이 프로그램을 실행할 때, 라인 wdDoc.Selection.Paste 오류 제공

Sub test() 

Dim wdDoc As Object 
Dim FileName As String 
Dim iRow As Integer 
Dim iCol As Integer 

'Open Word file 
FileName = ActiveWorkbook.Path & "\Template.doc" 
Set wdApp = New Word.Application 
Set wdDoc = wdApp.Documents.Open(FileName) 



' Loop through columns and rows 
For iCol = 1 To 3 ' or however many columns you have 
    For iRow = 1 To 2 

    With Worksheets("Sheet1").Cells(iRow, iCol) 
     ' Copy the cell to the destination 
     .Copy 
     wdDoc.Selection.Paste 
    End With 

    Next iRow 
Next iCol 

End Sub 

:

Run-time error '438': Object does not support this property or method.

을 나는 또한이하지 않는 것을 알고 있어요 나는 다음과 같은 코드가 있습니다 문서의 표 1에 붙여 넣으십시오. 그러나 지금은 의 내용이 없습니다.이므로, 먼저 작업하겠습니다. VBA를 처음 사용했지만 다른 프로그래밍 경험이 있습니다. 누군가 나를 도울 수 있습니까?

답변

1

이 작동합니다 :

wdApp.Selection.Range.Paste 

편집 : 더 완벽한 예를 회신 팀에 대한

Sub test() 

Dim wdDoc As Word.Document, wdApp As Word.Application 
Dim tbl As Word.Table 


Dim FileName As String 
Dim iRow As Integer 
Dim iCol As Integer 


    FileName = "C:\_stuff\Local Files\temp.docx" 
    Set wdApp = New Word.Application 

    wdApp.Visible = True 'add this to see the Word instance and document 

    Set wdDoc = wdApp.Documents.Open(FileName) 

    Set tbl = wdDoc.Tables(1) 

    ' Loop through columns and rows 
    For iRow = 1 To 2 
    For iCol = 1 To 3 ' or however many columns you have 
     With Worksheets("Sheet1").Cells(iRow, iCol) 
      tbl.Rows(iRow).Cells(iCol).Range.Text = .Value 
     End With 
    Next iCol 
    Next iRow 


    wdDoc.Close False ' close doc and save changes 
    wdApp.Quit  'close word (will auto-close if no open documents) 

End Sub 
+0

감사합니다. 그래도 여전히 작동하지 않습니다. 같은 오류가 발생합니다. 시도 할 때마다 문서가 편집을 위해 잠겨 있음 (나에 의해)되어 있으므로 "로컬 복사본 열기"라고 알려줍니다. 이것이 차이를 만들지 확실하지 않습니다. – therog1

+0

매크로 끝에서 문서를 닫으시겠습니까? 당신은 Word 인스턴스가'wdApp.Visible = True'로 보이도록 만들지 않으므로 Word가 아직 열려 있는지 (여러개의 인스턴스가 열려있을 수 있습니다) 명확하지 않습니다. 작업 관리자를보고 무엇이 있는지 확인하십시오. –

+0

그래, 내가 TM을 확인하고 거기에 몇 가지를 발견하고 이후 단어를 닫습니다 성명을 추가했습니다. 그래도 여전히 복사하지 않습니다. 어쩌면 단어 범위 또는 그 무엇으로 선언해야합니까? – therog1

관련 문제