ฉันรู้ว่าคำถามนี้ถูกถามแล้ว (การคัดลอกข้อมูลจากเอกสารคำหลายคำไปยังแผ่นงาน excel ) สิ่งที่ฉันไม่สามารถใช้คำตอบ
ฉันสดชื่นกับ VBA แต่ฉันคิดว่าฉันสามารถจัดการกับมันได้ ฉันผิดไป. ฉันพยายามใช้รหัสที่มีให้ในเธรดที่กล่าวถึงเพื่อแยกเอกสาร Word ในตอนแรกด้วยการแก้ไขบางอย่างจากนั้นเพียงแค่ใช้รหัสต้นฉบับ น่าเสียดายที่ฉันได้รับข้อผิดพลาด "ต้องใช้วัตถุ"
รหัสที่ให้ไว้ด้านล่าง เอกสารที่ฉันพยายามรับข้อมูลคือไฟล์ Word 2003 (ก่อนอื่นฉันพยายามเปลี่ยน "docx" เป็น "doc" จากนั้นบันทึกเอกสารใน docx และใช้สคริปต์ต้นฉบับไม่ช่วย) สิ่งหนึ่งที่พวกเขามีในความเป็นจริงการสแกนและ ocr'ed เอกสารที่เป็นกระดาษเพื่อให้ ...
ก)มากที่สุดของตารางที่อยู่ภายในจะถูกเก็บไว้ในกรอบ (ไม่ทราบว่ามีการเปลี่ยนแปลงอะไรที่คาดคะเนไม่พิจารณาโครงสร้าง XML ของพวกเขา)
ข )เมื่อฉันพยายามบันทึกเป็น docx แอปพลิเคชันจะเสนอให้บันทึกเป็น rtfs ก่อน ดังนั้นบางทีพวกเขากำลังอยู่ในความเป็นจริงไฟล์ rtf ไม่ใช่. doc?
Sub macro1()
Dim xl As Object
Set xl = CreateObject("excel.application")
xl.Workbooks.Add
xl.Visible = True
'Here put your path where you have your documents to read:
myPath = "C:\some\path\" 'End with '\'
myFile = Dir(myPath & "*.docx")
xlRow = 1
Do While myFile <> ""
Documents.Open Filename:=myPath & myFile, ConfirmConversions:=False, _
ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", _
PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
WritePasswordTemplate:="", Format:=wdOpenFormatAuto, XMLTransform:=""
xlCol = 0
For Each t In ActiveDocument.Tables
For Each r In t.Rows
For Each c In r.Range.Cells
myText = c
myText = Replace(myText, Chr(13), "")
myText = Replace(myText, Chr(7), "")
xlCol = xlCol + 1
xl.ActiveWorkbook.ActiveSheet.Cells(xlRow, xlCol) = myText
Next c
xl.ActiveWorkbook.ActiveSheet.Cells(xlRow, xlCol + 1) = myFile
xlRow = xlRow + 1
xlCol = 0
Next r
Next t
ActiveWindow.Close False
myFile = Dir
Loop
xl.Visible = True
End Sub