我想突出显示word文档中excel工作表的特定列中给出的特定单词。
我有一个有效的解决方案(见下文),可以从word文件中读取单词,但我无法让它使用excel文件中的特定列来执行相同的操作。本质上,我想做下面的python代码所做的事情(但对于VBA而言):
import pandas as pd
all = pd.read_excel("list.xlsx")
docRef = all(all["MY COLUMN NAME"])..。并且应该在下面的代码中使用docRef。我就是不能让它跑起来...
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修改的代码。
发布于 2019-03-25 20:04:30
为了从Word中控制Excel,您应该在Word VBA编辑器中设置对Excel库的引用:“工具”、“引用”,向下滚动到Microsoft Excel并勾选它。
然后,您需要打开Excel,并加载工作簿
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)https://stackoverflow.com/questions/55335026
复制相似问题