【问题标题】:Excel VBA copy and paste selected text from wordExcel VBA从word中复制和粘贴选定的文本
【发布时间】:2019-01-25 08:32:02
【问题描述】:

我想要我的 Excel 工作表上的宏按钮:

  1. 我将突出显示(选择)word 文档中的一些文本

  2. 我按下按钮

  3. 然后将文本复制并粘贴到我的 Excel 工作表中的指定单元格中

我试过了:

sub paste()
    objword.selection.copy range("B2")
End sub

首先我不知道objword是否是正确的语法,其次每次我在word中选择文本时,我无法在没有取消选择文本的情况下点击excel,那么我该如何做到这一点?我必须在word中创建宏吗?

谢谢

【问题讨论】:

  • 只是想知道:这怎么比 Ctrl+C/V 舒服?
  • 看看这里。这应该让你开始。 stackoverflow.com/questions/21317885/…
  • @Jelmer 所以我应该用word录制一个宏,然后从那里引用excel文件吗?我无法从 excel 宏中的单词中获得选择,因为单击 excel 会取消选择“选择”。
  • @Pᴇʜ 因为它只需要 2 个操作:突出显示并单击按钮。
  • @newbie23 如此微小的“改进”需要大量复杂的工作。我敢打赌,你可以在接下来的 10 年中使用 Ctrl+C/V,并且与编写该代码相比仍然可以节省时间。

标签: excel vba ms-word


【解决方案1】:

在 Excel 中运行的以下代码(需要引用 Microsoft Word xx 对象库)将抓取 Word 中的当前选择并将文本复制到 A1:

Sub paste()
    Dim oWd As Word.Application
    Set oWd = GetObject(, "Word.Application")
    ActiveSheet.Cells(1, 1) = oWd.Selection
    Set oWd = Nothing
End Sub

此外,以下是等效的相反,即可以在 Word 中运行的代码,它在 Word 中获取选择并将其发送到 Excel:

Sub paste()
    Dim oXL As Excel.Application
    Set oXL = GetObject(, "Excel.Application")
    oXL.ActiveSheet.Cells(1, 1) = Selection.Text
    Set oXL = Nothing
End Sub

这需要参考 Microsoft Excel xx 对象库。

【讨论】:

  • 谢谢,不知道您要求引用对象库是什么意思。它抛出编译错误“未定义用户定义的类型”
  • 没问题。为了安全起见,我建议添加一些检查 Excel 是否打开的内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多