Всем привет! Есть код, который не работает на моем компе и ноуте, но работает двух других компьютерах и у форумчан
[vba]
Код
Sub ConvertFromWordToExcelTarget() 'On Error GoTo ops Dim fd As FileDialog Dim FSO As Object Dim objWordTarget As Object Dim wrdTarget As Object Dim strTargetFile As String 'целевой файл Set FSO = CreateObject("Scripting.FileSystemObject") 'выбор целевого файла: Set fd = Application.FileDialog(msoFileDialogFilePicker) With fd .AllowMultiSelect = False .Filters.Clear .Filters.Add "Файлы Word", "*.doc*" .Show End With If fd.SelectedItems.Count = 0 Then MsgBox "файл не выбран, операция прервана" Exit Sub End If strTargetFile = fd.SelectedItems(1) 'имя выбранного файла Set objWordTarget = CreateObject("Word.Application") Set wrdTarget = objWordTarget.Documents.Open(strTargetFile, , True) 'открытие целевого файла 'обработка With objWordTarget .Visible = True .Activate 'GoTo ops .Selection.WholeStory .Selection.Find.ClearFormatting .Selection.Find.Replacement.ClearFormatting 'замена неразрывных пробелов на пробел With .Selection.Find .Text = "^s" .Replacement.Text = " " .Forward = True .Wrap = 2 .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With .Selection.Find.Execute Replace:=2 'РУГАЕТСЯ ТУТ !!! 'замена ПИ на пробел With .Selection.Find .Text = "^p" .Replacement.Text = " " .Forward = True .Wrap = 2 .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With .Selection.Find.Execute Replace:=2
'копия результата .Selection.WholeStory .Selection.Copy End With ' objWordTarget.Run "replaceSymbolsPub" 'replaceSymbolsPubCopy - работает, а с заменой символов уже нет 'GoTo ops wrdTarget.Close False
'вставка обработанного текста ThisWorkbook.Sheets(1).Range("A1").PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:=False, NoHTMLFormatting:=True
test: MsgBox "oki" letQuit: objWordTarget.Quit Set wrdTarget = Nothing: Set objWordTarget = Nothing Set FSO = Nothing MsgBox "Quit" Exit Sub ops: wrdTarget.Close False objWordTarget.Quit Set wrdTarget = Nothing: Set objWordTarget = Nothing Set FSO = Nothing MsgBox "Ops" End Sub
[/vba]
Подробности в моем местном посте Прошу помощи гуру
Всем привет! Есть код, который не работает на моем компе и ноуте, но работает двух других компьютерах и у форумчан
[vba]
Код
Sub ConvertFromWordToExcelTarget() 'On Error GoTo ops Dim fd As FileDialog Dim FSO As Object Dim objWordTarget As Object Dim wrdTarget As Object Dim strTargetFile As String 'целевой файл Set FSO = CreateObject("Scripting.FileSystemObject") 'выбор целевого файла: Set fd = Application.FileDialog(msoFileDialogFilePicker) With fd .AllowMultiSelect = False .Filters.Clear .Filters.Add "Файлы Word", "*.doc*" .Show End With If fd.SelectedItems.Count = 0 Then MsgBox "файл не выбран, операция прервана" Exit Sub End If strTargetFile = fd.SelectedItems(1) 'имя выбранного файла Set objWordTarget = CreateObject("Word.Application") Set wrdTarget = objWordTarget.Documents.Open(strTargetFile, , True) 'открытие целевого файла 'обработка With objWordTarget .Visible = True .Activate 'GoTo ops .Selection.WholeStory .Selection.Find.ClearFormatting .Selection.Find.Replacement.ClearFormatting 'замена неразрывных пробелов на пробел With .Selection.Find .Text = "^s" .Replacement.Text = " " .Forward = True .Wrap = 2 .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With .Selection.Find.Execute Replace:=2 'РУГАЕТСЯ ТУТ !!! 'замена ПИ на пробел With .Selection.Find .Text = "^p" .Replacement.Text = " " .Forward = True .Wrap = 2 .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With .Selection.Find.Execute Replace:=2
'копия результата .Selection.WholeStory .Selection.Copy End With ' objWordTarget.Run "replaceSymbolsPub" 'replaceSymbolsPubCopy - работает, а с заменой символов уже нет 'GoTo ops wrdTarget.Close False
'вставка обработанного текста ThisWorkbook.Sheets(1).Range("A1").PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:=False, NoHTMLFormatting:=True
test: MsgBox "oki" letQuit: objWordTarget.Quit Set wrdTarget = Nothing: Set objWordTarget = Nothing Set FSO = Nothing MsgBox "Quit" Exit Sub ops: wrdTarget.Close False objWordTarget.Quit Set wrdTarget = Nothing: Set objWordTarget = Nothing Set FSO = Nothing MsgBox "Ops" End Sub
[/vba]
Подробности в моем местном посте Прошу помощи гуруLeprotto
Сообщение отредактировал Leprotto - Пятница, 25.08.2017, 21:18