2017-12-11 3 views
0

Excel 문자열 (열 A 열 B)의 Word에서 1000 단어/구를 대체해야합니다. 아래 코드를 사용하고 있습니다. 그것은 일반 텍스트에 대해 잘 작동하지만 Word 파일에 포함 된 테이블에서는 작동하지 않습니다. 교체 할 단어가 테이블에 있으면 코드가이 단어를 대체하고 다른 모든 단어를 대체하지 않는 테이블에 많은 원시를 만듭니다. 내가 어떻게 고칠 수 있니? 감사. Word에서 모든 단어하는 작업MS Excel에서 MS Word의 여러 항목을 찾아서 바꾸기 : 코드가 포함 된 표에 대해 작동하지 않습니다.

Sub findandreplace() 

Dim xlApp As Object 
Dim xlWB As Object 
Dim xlWS As Object 

Dim i As Integer, j As Integer 
Dim lastRow As Integer 

Set xlApp = CreateObject("Excel.Application") 
Set xlWB = xlApp.Workbooks.Open("PATH TO EXCEL FILE") 
Set xlWS = xlWB.Worksheets("Sheet1") 'Replace String with your Worksheet Name 

lastRow = 1000 

For i = 1 To ThisDocument.Words.Count - 1 Step 1 
For j = 1 To lastRow Step 1 
     ThisDocument.Words(i) = Replace(ThisDocument.Words(i), xlWS.Cells(j, 1).Value, xlWS.Cells(j, 2).Value) 
    Next j 
Next i 

Set xlWS = Nothing 
xlWB.Close True 
Set xlWB = Nothing 
xlApp.Quit 
Set xlApp = Nothing 

End Sub 

답변

0

코드는 다음과 같습니다 텍스트 단어, 쉼표, 점, 단락 기호, 세포 마크 및 많은 다른 사람의 말. 대신 Find...Replace 기능을 사용해보십시오. 당신이 당신의 코드와 함께 있고 싶어하지만 내가 생각할 수있는 quickes 아이디어는 다음과 같이 추가 If Statement를 추가하는 것입니다 :

.... 
For j = 1 To lastRow Step 1 
    If InStr(1, ThisDocument.Words(i), xlWS.Cells(j, 1).Value, vbTextCompare) <> 0 Then 
     ThisDocument.Words(i) = Replace(ThisDocument.Words(i), xlWS.Cells(j, 1).Value, xlWS.Cells(j, 2).Value) 
    End if 
Next j 
.... 
+0

카 지미 에르 야 보르, 당신의 제안을 주셔서 감사합니다. 찾기 ... 바꾸기를 사용하면 코드가 어떻게됩니까? 나는 번역 목적으로 최대한 빨리 1550 개의 문구를 대체해야한다고 VBA에서 매우 새롭다. –

+0

[이 예] (https://stackoverflow.com/questions/22187909/word-vba-find-replace-issue) 또는 [this] (https://stackoverflow.com/questions/18609963/vba- 2010 년 텍스트로 찾기 및 바꾸기) 또는 [this] (https://wordmvp.com/FAQs/Customization/ReplaceAnywhere.htm) 또는 [this] (https : // www.datanumen.com/blogs/4-useful-methods-find-replace-text-part-word-document/). 보시다시피 인터넷에 많은 예제가 있습니다. 또한 코드를 얻기 위해 매크로를 기록 할 수 있습니다. –