将整个故事从Word复制并粘贴到Excel
我有一个定期收到的Word文档,它需要与Excel中已有的其他数据合并,作为更大输出的一部分。我可以将整个文档(完整文档)从Word复制并粘贴到Excel中,但我想将此部分作为整个Excel输出宏的一部分。我当前的代码如下所示,除了不粘贴任何内容外,它工作正常。当它到达那里时,没有数据可以粘贴,所以我猜它不是没有开始拾取它,就是没有将它带过来。正在寻求这方面的帮助。非常感谢将整个故事从Word复制并粘贴到Excel,excel,vba,Excel,Vba,我有一个定期收到的Word文档,它需要与Excel中已有的其他数据合并,作为更大输出的一部分。我可以将整个文档(完整文档)从Word复制并粘贴到Excel中,但我想将此部分作为整个Excel输出宏的一部分。我当前的代码如下所示,除了不粘贴任何内容外,它工作正常。当它到达那里时,没有数据可以粘贴,所以我猜它不是没有开始拾取它,就是没有将它带过来。正在寻求这方面的帮助。非常感谢 Sub ImportSectHWord() Dim objWord As Object Dim objDoc As Ob
Sub ImportSectHWord()
Dim objWord As Object
Dim objDoc As Object
Dim wdFileName
Set objWord = CreateObject("word.Application")
wdFileName = Application.GetOpenFilename("Word Documents, *.doc*")
If wdFileName = False Then Exit Sub
Set objDoc = GetObject(wdFileName)
objWord.Documents.Open (wdFileName)
objWord.Selection.WholeStory
Selection.Copy
Worksheets("H Import").Select
Range("A1").Select
ActiveSheet.Paste
objDoc.Close SaveChanges:=wdDoNotSaveChanges
objWord.Quit
End Sub
声明
Selection.Copy
正在复制Excel中当前选定的内容
要复制Word中的选择
对象,请使用
objWord.Selection.Copy
在使用方法和属性时,即使VBA提供了默认对象,也最好限定所引用的对象
Sub ImportSectHWord()
'It is better to always define constants, even though they will default to zero
' which just happens to be the desired value in this case
Const wdDoNotSaveChanges As Long = 0
Dim objWord As Object
Dim objDoc As Object
Dim wdFileName
Set objWord = CreateObject("word.Application")
wdFileName = Application.GetOpenFilename("Word Documents, *.doc*")
If wdFileName = False Then Exit Sub
Set objDoc = GetObject(wdFileName)
objWord.Documents.Open (wdFileName)
objWord.Selection.WholeStory
objWord.Selection.Copy
ActiveWorkbook.Worksheets("H Import").Select
ActiveWorkbook.Worksheets("H Import").Range("A1").Select
ActiveWorkbook.ActiveSheet.Paste
objDoc.Close SaveChanges:=wdDoNotSaveChanges
objWord.Quit
End Sub
声明
Selection.Copy
正在复制Excel中当前选定的内容
要复制Word中的选择
对象,请使用
objWord.Selection.Copy
在使用方法和属性时,即使VBA提供了默认对象,也最好限定所引用的对象
Sub ImportSectHWord()
'It is better to always define constants, even though they will default to zero
' which just happens to be the desired value in this case
Const wdDoNotSaveChanges As Long = 0
Dim objWord As Object
Dim objDoc As Object
Dim wdFileName
Set objWord = CreateObject("word.Application")
wdFileName = Application.GetOpenFilename("Word Documents, *.doc*")
If wdFileName = False Then Exit Sub
Set objDoc = GetObject(wdFileName)
objWord.Documents.Open (wdFileName)
objWord.Selection.WholeStory
objWord.Selection.Copy
ActiveWorkbook.Worksheets("H Import").Select
ActiveWorkbook.Worksheets("H Import").Range("A1").Select
ActiveWorkbook.ActiveSheet.Paste
objDoc.Close SaveChanges:=wdDoNotSaveChanges
objWord.Quit
End Sub
要帮助调试,请在完成调试后检查选择了哪个工作表。检查完成后选择了哪些单元格。这个宏也应该保存excel电子表格吗?很好的提示,谢谢。不应将其保存在此宏中,保存将内置于较大过程中每个宏的返回中。为了帮助您进行调试,请检查完成后选择了哪个工作表。检查完成后选择了哪些单元格。这个宏也应该保存excel电子表格吗?很好的提示,谢谢。它不应该保存在这个宏中,保存是建立在更大过程中每个宏的返回中的。非常感谢YowE3K!好建议。这是我第一次尝试使用不同的应用程序,显然我需要记住这一课。这对您的添加非常有效。非常感谢!是否可以在不选择
范围(“A1”)
的情况下粘贴它?像这样工作簿。打开(“C:\Users\dell\Desktop\LATAM.xlsx”)。工作表(“Sheet1”)。范围(“A1”)。粘贴
。请确认一下,非常感谢你!好建议。这是我第一次尝试使用不同的应用程序,显然我需要记住这一课。这对您的添加非常有效。非常感谢!是否可以在不选择范围(“A1”)
的情况下粘贴它?像这样工作簿。打开(“C:\Users\dell\Desktop\LATAM.xlsx”)。工作表(“Sheet1”)。范围(“A1”)。粘贴
。请确认一下