【问题标题】:How to copy a selection from word to excel using Word VBA如何使用 Word VBA 将所选内容从 word 复制到 excel
【发布时间】:2019-06-13 01:22:32
【问题描述】:

我正在尝试将 word 文档中的单词复制到 excel 工作簿中的特定单元格。我已经使用书签来查找我需要的文本并将其复制,然后我打开工作簿以粘贴到特定的单元格 - 这是一个 vlookup 参考。

我的代码运行,但粘贴实际上并没有发生。我知道代码的复制部分有效,因为当我运行到该点然后手动粘贴选择时,它工作得很好。我尝试了多种粘贴选项,但到目前为止没有任何效果...

Selection. Paste

Selection.PasteSpecial (xlPasteAll)

Selection.PasteSpecial (xlPasteValues)

这是我的代码:

Sub copypastewordtoexcel()

Dim oXL As Excel.Application
Dim oWB As Excel.Workbook
Dim oSheet As Excel.Worksheet
Dim ExcelWasNotRunning As Boolean
Dim WorkbookToWorkOn As String

ActiveDocument.Bookmarks("Name").Select
Selection.Copy

WorkbookToWorkOn = "C:\Users\arboari\Desktop\Book1.xlsx"

Set oXL = GetObject(, "Excel.Application")

Set oWB = oXL.Workbooks.Open(FileName:=WorkbookToWorkOn)

ActiveDocument.Bookmarks("Name").Select
Selection.Copy

For Each oSheet In oXL.ActiveWorkbook.Worksheets
oSheet.Range("A1").Select
Selection.PasteSpecial (xlPasteValue)
Next oSheet

Set oRng = Nothing
Set oSheet = Nothing
Set oWB = Nothing
Set oXL = Nothing

End Sub

我不确定我做错了什么,但我希望能得到一些指导!

谢谢!

【问题讨论】:

    标签: excel vba ms-word copy-paste


    【解决方案1】:

    应该不需要复制/粘贴:你可以直接分配

    Sub copypastewordtoexcel()
    
        Dim oXL As Excel.Application
        Dim oWB As Excel.Workbook
        Dim oSheet As Excel.Worksheet
        Dim ExcelWasNotRunning As Boolean
        Dim WorkbookToWorkOn As String
    
        WorkbookToWorkOn = "C:\Users\arboari\Desktop\Book1.xlsx"
    
        Set oXL = GetObject(, "Excel.Application")
        Set oWB = oXL.Workbooks.Open(FileName:=WorkbookToWorkOn)
    
        For Each oSheet In oXL.ActiveWorkbook.Worksheets
                oSheet.Range("A1").Value = ActiveDocument.Bookmarks("Name").Range.Text
        Next oSheet
    
    End Sub
    

    编辑:从表格单元格中读取

    txt = ActiveDocument.Tables(1).Cell(1, 1).Range.Text
    oSheet.Range("A1").Value = Left(txt, Len(txt)-2)
    

    您需要去掉两个字符的“单元格结尾”标记。

    【讨论】:

    • 是的。好多了。
    • 不使用书签,是否可以直接从word表格中的单元格中分配它?我尝试了以下操作,但是当我打开 excel 工作簿时,它不仅在其中添加了文本,还添加了一个字符。-例如斯图尔特•oSheet.Range("A1").Value = ActiveDocument.Tables(1).Cell(1, 1).Range.Text
    猜你喜欢
    • 1970-01-01
    • 2023-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-13
    • 2020-10-16
    • 1970-01-01
    • 2019-03-18
    相关资源
    最近更新 更多