首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于MS-word VBA宏从excel工作表中读取特定列

基于MS-word VBA宏从excel工作表中读取特定列
EN

Stack Overflow用户
提问于 2019-03-25 17:46:58
回答 1查看 46关注 0票数 0

我想突出显示word文档中excel工作表的特定列中给出的特定单词。

我有一个有效的解决方案(见下文),可以从word文件中读取单词,但我无法让它使用excel文件中的特定列来执行相同的操作。本质上,我想做下面的python代码所做的事情(但对于VBA而言):

代码语言:javascript
复制
import pandas as pd
all = pd.read_excel("list.xlsx")
docRef = all(all["MY COLUMN NAME"])

..。并且应该在下面的代码中使用docRef。我就是不能让它跑起来...

代码语言:javascript
复制
Sub highlightWords()

Dim sCheckDoc As String
Dim docRef As Document
Dim docCurrent As Document
Dim wrdRef As Object

sCheckDoc = "list.docx"
Set docCurrent = Selection.Document
Set docRef = Documents.Open(sCheckDoc)
docCurrent.Activate

Options.DefaultHighlightColorIndex = wdRed
With Selection.Find
    .ClearFormatting
    .Replacement.ClearFormatting
    .Replacement.Highlight = True
    .Replacement.Text = "^&"
    .Forward = True
    .Format = True
    .MatchWholeWord = True
    .MatchCase = False
    .MatchWildcards = False
End With

For Each wrdRef In docRef.Words
    If Asc(Left(wrdRef, 1)) > 32 Then
        With Selection.Find
            .Wrap = wdFindContinue
            .Text = wrdRef
            .Execute Replace:=wdReplaceAll
        End With
    End If
Next wrdRef

docRef.Close
docCurrent.Activate
End Sub

here修改的代码。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-25 20:04:30

为了从Word中控制Excel,您应该在Word VBA编辑器中设置对Excel库的引用:“工具”、“引用”,向下滚动到Microsoft Excel并勾选它。

然后,您需要打开Excel,并加载工作簿

代码语言:javascript
复制
   Dim XL as new Excel.Application
   Dim wb as Excel.Workbook
   Set wb = xl.Workbooks.open("path and name of file list.xlsx")
   For Each wordref in wb.Sheets(1).Range("a1:A" & wb.Sheets(1).usedrange.rows.count)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55335026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档