Недавние сообщения

Страницы: 1 2 [3] 4 5 ... 10
21
Общие вопросы по AutoIt / Re: Поиск и выделение текста в Word файле
« Последний ответ от DOMINANT Отправлен Март 26, 2017, 18:20:38 »
Ура!!!   :beer: hedji а как можно дополнительные опции посылать  в VBA выглядит так Selection.PasteAndFormat (wdFormatPlainText) в скобках доп опция вот так пробовал, эта функция вставляет то что находится в буфере обмена как простой текст
Код: AutoIt [Выделить]
$empWord.Selection.PasteAndFormat (wdFormatPlainText)
$empWord.Selection.PasteAndFormat = wdFormatPlainText
$empWord.Selection.PasteAndFormat = $wdFormatPlainText
 

22
Общие вопросы по AutoIt / Re: Поиск и выделение текста в Word файле
« Последний ответ от hedji Отправлен Март 26, 2017, 17:56:36 »
Код: AutoIt [Выделить]
$empWord = ObjCreate("Word.Application")
$empWord.Visible = 1
$empWord.documents.Open(@ScriptDir & "\тест.docx").Content.Select
With $empWord.Selection
    .Find.Text = "12345"
EndWith

If $empWord.Selection.Find.Execute Then
        $empWord.Selection.Select
EndIf
 

23
Общие вопросы по AutoIt / Re: Поиск и выделение текста в Word файле
« Последний ответ от DOMINANT Отправлен Март 26, 2017, 14:39:43 »
Спасибо работает, но я хочу научиться работать встроенными методами в word и excel, чтобы в дальнейшем более тонкие и продвинутые вещи делать , и поэтому вопрос остаётся открытым:)
24
Общие вопросы по AutoIt / Re: Поиск и выделение текста в Word файле
« Последний ответ от Alofa Отправлен Март 26, 2017, 13:56:10 »
Код: AutoIt [Выделить]
#include <Word.au3>
$oWord = _Word_Create()
$oDoc = _Word_DocOpen($oWord, @ScriptDir & '\Test.docx')
$oRangeFound = _Word_DocFind($oDoc, '12345')
$oRange = _Word_DocRangeSet($oDoc, $oRangeFound)
$oRange.Select

25
Общие вопросы по AutoIt / Поиск и выделение текста в Word файле
« Последний ответ от DOMINANT Отправлен Март 26, 2017, 13:03:53 »
Приветствую! Помогите конвертировать VBA макрос в Autoit, код ищет текст в документе и выделяет этот текст. В самом Word если запускать все работает отлично

Sub Test1()
Dim WordApp As Object
     
    Set WordApp = GetObject(, "Word.Application")
    WordApp.Visible = True
   
    ActiveDocument.Content.Select
   
    With Selection.Find
        .ClearFormatting
        .Text = "12345"
    End With
   
    If Selection.Find.Execute Then
        Selection.Select
    End If
End Sub

Вот так пытался не работает

Код: AutoIt [Выделить]
$objWord = _Word_Create()
$empWord = _Word_DocOpen($objWord, @ScriptDir & "\тест.docx", 0, 0, 0, 1)
$empWord.Content.Select
With $empWord.Selection.Find
    .ClearFormatting
    .Text = "12345"
EndWith

If $empWord.Selection.Find.Execute Then
   $empWord.Selection.Select
EndIf
 

26
Дни рождения / С днём рождения darkwhite!
« Последний ответ от Представитель Сообщества Отправлен Март 26, 2017, 01:00:24 »
От имени всего Русского сообщества AutoIt поздравляем Вас darkwhite с днём рождения!



Цитировать
Пусть все мечты исполнятся,
Пусть все желанья сбудутся,
Пусть радости запомнятся,
А горести забудутся.

Здоровье будет крепкое,
В делах всегда согласие,
Любовь навеки верная —
Без ссор и разногласия.

Зарплата только вовремя,
Стабильная, высокая.
Работа будет лёгкая
И не совсем далёкая.

Пусть жизнь Вам дарит самые
Прекрасные мгновения.
Желаем только радости
И счастья, с днем рождения!
27
Общие вопросы по AutoIt / Re: ProgressBar для копирования 1 фаила
« Последний ответ от Alofa Отправлен Март 25, 2017, 22:55:33 »
Код: AutoIt [Выделить]
#include <WinAPIFiles.au3>

Local $sFile_1 = @ScriptDir & '\BigFile.rar'
Local $sFile_2 = @ScriptDir & '\CopyDir\File_2.rar'

_FileCopyProgress($sFile_1, $sFile_2, True) ; Третий параметр: False = Не перезаписывть существующий файл
;                                                              True = Перезаписывть существующий файл

Func _FileCopyProgress($iTotalFileSize, $iTotalBytesTransferred, $iFlag)
    Local Static $hProgressProc
    If $hProgressProc Then
        Local $iPercent = Round($iTotalBytesTransferred / $iTotalFileSize * 100)
        ProgressSet($iPercent, ($iPercent = 100) ? 'Выполнено.' : $iPercent & '%')
        Sleep(10)
    Else
        If (Not $iFlag) And FileExists($iTotalBytesTransferred) Then Return 2
        $hProgressProc = DllCallbackRegister('_FileCopyProgress', 'bool', 'uint64;uint64;boolean')
        ProgressOn('_WinAPI_CopyFileEx()', 'Копирование...', '0%')
        If Not _WinAPI_CopyFileEx($sFile_1, $sFile_2, 0, DllCallbackGetPtr($hProgressProc)) Then _
                Return SetError(_WinAPI_GetLastError(), 0, -1)
        DllCallbackFree($hProgressProc)
        $hProgressProc = False
        ProgressOff()
        Return 1
    EndIf
EndFunc   ;==>_FileCopyProgress



Добавлено: Март 26, 2017, 13:09:03
Несколько изменил пример.


Добавлено: Март 26, 2017, 18:39:49
А в общем-то, что делает Windows при копировании? Правильно, создает новый файл (контейнер), читает копируемый файл и заливает этой информацией второй.
Что и показал joiner в своем примере, только средствами Autoit.
maxd2007 доработайте строку:
Код: AutoIt [Выделить]
; Local $fdo = FileOpen($D & '\' & $gn, 26)
Local $fdo = FileOpen($D, 26)

и попробуйте код с копированием в файл с другим именем.
28
Общие вопросы по AutoIt / Re: Нажатие кнопок клавиатуры
« Последний ответ от And Отправлен Март 25, 2017, 21:17:04 »
Спасибо, подходит.
29
Общие вопросы по AutoIt / Re: ProgressBar для копирования 1 фаила
« Последний ответ от joiner Отправлен Март 25, 2017, 18:28:37 »
лучше использовать управляемые процессы.
маленький набросок
(нажмите для показа/скрытия)
30
Общие вопросы по AutoIt / Re: Разложить массив на отдельные переменные
« Последний ответ от DOMINANT Отправлен Март 25, 2017, 15:57:37 »
Так не работает

Код: AutoIt [Выделить]
#include <Array.au3>
#include <Excel.au3>

$oExcel = _Excel_Open()
$oWorkbook = _Excel_BookOpen($oExcel, @ScriptDir & "\123.xlsx") ; Открытие файла
$eRangeFind = _Excel_RangeFind($oWorkbook, "1/14", "B1:B999") ; Поиск значения 1/14
_ArrayDisplay($eRangeFind, "Результат", "", 32, ",", "Лист|Имя|Ячейка|Значение|Формула|Примечание") ; Вывод результата на экран
$column1 = $eRangeFind[0]
$column2 = $eRangeFind[1]
$column3 = $eRangeFind[2]
$column4 = $eRangeFind[3]
$column5 = $eRangeFind[4]
$column6 = $eRangeFind[5]
 MsgBox(0, "Результат", $column3)
 


Имеете ввиду так $eRangeFind[3]? Выдаст значение 3 столбца ?


Добавлено: Март 25, 2017, 16:41:47
Вот так получилось так как у нас формально двумерный массив 1 строка и 6 столбцов $eRangeFind[0][4] в меседж бокс выводится нужное значение

Код: AutoIt [Выделить]
#include <Array.au3>
#include <Excel.au3>

$oExcel = _Excel_Open()
$oWorkbook = _Excel_BookOpen($oExcel, @ScriptDir & "\123.xlsx") ; Открытие файла
$eRangeFind = _Excel_RangeFind($oWorkbook, "1/14", "B1:B999") ; Поиск значения 1/14
_ArrayDisplay($eRangeFind, "Результат", "", 32, ",", "Лист|Имя|Ячейка|Значение|Формула|Примечание") ; Вывод результата на экран
MsgBox(0, "Результат", $eRangeFind[0][4])
 

Страницы: 1 2 [3] 4 5 ... 10