1. Tải bản cài đặt AutoIT mới nhất

    Chào Khách. Nếu bạn mới tham gia và chưa cài đặt AutoIT.
    Vui lòng vào topic trên để tải bản AutoIT mới nhất nhé
    Dismiss Notice
  2. Quy định và nội quy

    Chào Khách. Vui lòng đọc kỹ nội quy và quy định của diễn đàn
    Để tránh bị ban một cách đáng tiếc nhé!
    Dismiss Notice
  3. Hướng dẫn chèn mã AutoIT trong diễn đàn

    Chào Khách. Vui lòng xem qua bài viết này
    Để biết cách chèn mã AutoIT trong diễn đàn bạn nhé :)
    Dismiss Notice

Hỏi đáp [Solved] Thực hiện số lần lặp lại theo ý muốn

Thảo luận trong 'Thảo luận chung - Hỏi đáp' bắt đầu bởi minhtam143, 18/5/20.

  1. minhtam143

    minhtam143 Thành viên mới
    • 1/6

    Tham gia ngày:
    25/3/20
    Bài viết:
    19
    Đã được thích:
    0
    Em là newbie (cũng học auto it được hơn 2 tháng) cũng đã thực hiện viết được nhưng code thuần túy, bằng các vòng lặp while, những vòng lặp dưới đây giúp em thực hiện hơn 10 bước một cách nhanh chóng. Nhưng nhờ anh chị em chỉ thêm giúp em, là thêm hàm gì để em có thể thực hiện số lần theo ý muốn (ví dụ em có 15 hóa đơn, thì bình thường em phải bấm F5 15 lần để thực hiện các bước (hơn 10 bước))
    Nhờ các anh chị chỉ giáo thêm để em có thể tiến bộ hơn. Tks all

    Mã (AutoIt):
    #include<ImageSearch.au3>
    #include<ExcelCOM_UDF.au3>
    $oExcel =_ExcelBookOpen (@ScriptDir & "\hoadon2.xlsx",1)
    WinActive("SMCS | Lập hóa đơn GTGT (HDDT) - Google Chrome")
    WinSetState ("SMCS | Lập hóa đơn GTGT (HDDT) - Google Chrome","",@SW_MAXIMIZE)
    MsgBox (0,"Máy tính MINH TÂM","Không được đụng vào máy tính, khi em đang làm nhé!")


    ; --> ấn vào mục thêm để tạo hóa đơn
    While 1
        Local $x = 0, $y = 0
        Local $timkiemhd =_ImageSearch(@ScriptDir& "\xuat hoa don tam"& "\app0.bmp",1, $x, $y,0)
        if $timkiemhd = 1 Then
            MouseClick ("left",$x, $y,1)
            Sleep (300)
            ExitLoop
            EndIf
    WEnd
    WinWait ("SMCS | Lập hóa đơn GTGT (HDDT) - Google Chrome")
    Sleep (300)
    ; --> tại mục thông tin hóa đơn, chỉ vào lê thị diện
    While 1
        Local $x = 0, $y = 0
        Local $timkiemhd =_ImageSearch(@ScriptDir & "\xuat hoa don tam"& "\app2.bmp",1, $x, $y,0)
        if $timkiemhd = 1 Then
            MouseClick ("left", $x, $y, 1)
            MouseClick ("left",$x, $y +25,1)
            Sleep (1000)
            Send ("NVTT-Nguyễn Minh Tâm")
            Sleep (500)
            MouseClick ("left",$x, $y +55,1)
            ExitLoop
            EndIf
    WEnd
    Sleep (500)
    ; dien muc Ten KH
    While 1
        Local $x = 0, $y = 0
        Local $timkiemhd =_ImageSearch(@ScriptDir& "\xuat hoa don tam"& "\app1c.bmp",1, $x, $y,0)
        if $timkiemhd = 1 Then
            MouseClick ("left",$x + 150, $y,1)
            Sleep (200)
            $copy = _ExcelCopy ($oExcel,"D2")
            Sleep (200)
            Send ("^v")
            ExitLoop
            EndIf
    WEnd
    ;lan con tro chuot len tren
    While 1
        Local $x = 0, $y = 0
        Local $timkiemhd =_ImageSearch(@ScriptDir& "\xuat hoa don tam"& "\app1a.bmp",1, $x, $y,0)
        if $timkiemhd = 1 Then
            MouseWheel ("down",1)
            ExitLoop
            EndIf
    WEnd
    Sleep (300)
    ; dien dia chi KH
    While 1
        Local $x = 0, $y = 0
        Local $timkiemhd =_ImageSearch(@ScriptDir& "\xuat hoa don tam"& "\app1d.bmp",1, $x, $y,0)
        if $timkiemhd = 1 Then
            $copy = _ExcelCopy ($oExcel,"E2")
            MouseClick ("left",$x + 150, $y,1)
            Sleep (200)
            Send ("^v")
            ExitLoop
            EndIf
    WEnd
    Sleep (1000)
    ; dien email KH
    While 1
        Local $x = 0, $y = 0
        Local $timkiemhd =_ImageSearch(@ScriptDir& "\xuat hoa don tam"& "\app1e.bmp",1, $x, $y,0)
        if $timkiemhd = 1 Then
            MouseWheel("down",1)
            Sleep (200)
            MouseClick ("left",$x + 150, $y - 90,2)
            Send ("^a")
            Sleep (200)
            Send ("{DEL}")
            Sleep (200)
            MouseClick ("left",$x + 150, $y - 90,2)
            $copy = _ExcelCopy ($oExcel,"G2")
            Send ("^v")
            ExitLoop
            EndIf
    WEnd
    ; điền nội dung hóa đơn

    While 1
        Local $x = 0, $y = 0
       Local $timkiemhd =_ImageSearch(@ScriptDir& "\xuat hoa don tam"& "\app1f.bmp",1, $x, $y,0)
    if $timkiemhd = 1 Then
            MouseClick ("left",$x + 150, $y,2)
            Send ("^a")
            Sleep (200)
            Send ("{del}")
            Sleep (200)
            Send ("xuất hóa đơn")
            Sleep (300)
            MouseWheel ("up",1)
            Sleep (1000)
            ExitLoop
            EndIf
    WEnd

    ;=========================> sang muc thong tin giao dich
    While 1
        Local $x = 0, $y = 0
        Local $timkiemhd =_ImageSearch(@ScriptDir& "\xuat hoa don tam"& "\app1.bmp",1, $x, $y,0)
        if $timkiemhd = 1 Then
            MouseClick ("left",$x, $y,1)
            ExitLoop
            EndIf
    WEnd
    ; lan con tro chuot len tren
    While 1
        Local $x = 0, $y = 0
        Local $timkiemhd =_ImageSearch(@ScriptDir& "\xuat hoa don tam"& "\app1a.bmp",1, $x, $y,0)
        if $timkiemhd = 1 Then
            MouseMove ($x, $y)
            MouseWheel ("down",2)
            Sleep(400)
            ExitLoop
            EndIf
    WEnd

    ; chọn người ban hành
    While 1
        Local $x = 0, $y = 0
        Local $timkiemhd =_ImageSearch(@ScriptDir& "\xuat hoa don tam"& "\app2.bmp",1, $x, $y,0)
        if $timkiemhd = 1 Then
            MouseClick ("left",$x + 60, $y,1)
            MouseClick ("left",$x, $y + 35, 1)
            Send ("Minh Tâm")
            Sleep (500)
            ExitLoop
            EndIf
    WEnd
    While 1
        Local $x = 0, $y = 0
        Local $timkiemhd =_ImageSearch(@ScriptDir& "\xuat hoa don tam"& "\app3.bmp",1, $x, $y,0)
        if $timkiemhd = 1 Then
            MouseClick ("left",$x + 60, $y,1)
            ExitLoop
            EndIf
    WEnd
    ;loai giao dich ban hang
    While 1
        Local $x = 0, $y = 0
        Local $timkiemhd =_ImageSearch(@ScriptDir& "\xuat hoa don tam"& "\app4.bmp",1, $x, $y,0)
        if $timkiemhd = 1 Then
            MouseClick ("left",$x + 120, $y,1)
            MouseMove ($x + 120 , $y + 50)
            Sleep (300)
            MouseWheel ("down",1)
            ExitLoop
            EndIf
    WEnd
    ;chon ban qua kenh ban hang
    While 1
        Local $x = 0, $y = 0
        Local $timkiemhd =_ImageSearch(@ScriptDir& "\xuat hoa don tam"& "\app5.bmp",1, $x, $y,0)
        if $timkiemhd = 1 Then
            MouseClick ("left",$x + 150, $y,1)
            ExitLoop
            EndIf
    WEnd
    ; chi vao hinh thuc thanh toan
    While 1
        Local $x = 0, $y = 0
        Local $timkiemhd =_ImageSearch(@ScriptDir& "\xuat hoa don tam"& "\app6.bmp",1, $x, $y,0)
        if $timkiemhd = 1 Then
            MouseClick ("left",$x + 150, $y,1)
            ExitLoop
            EndIf
    WEnd
    ;chon vao tien mat
    While 1
        Local $x = 0, $y = 0
        Local $timkiemhd =_ImageSearch(@ScriptDir& "\xuat hoa don tam"& "\app7.bmp",1, $x, $y,0)
        if $timkiemhd = 1 Then
            MouseClick ("left",$x , $y,1)
            ExitLoop
            EndIf
    WEnd
    ;chi vao muc trang thai thanh toan
    While 1
        Local $x = 0, $y = 0
        Local $timkiemhd =_ImageSearch(@ScriptDir& "\xuat hoa don tam"& "\app8.bmp",1, $x, $y,0)
        if $timkiemhd = 1 Then
            MouseClick ("left",$x + 150 , $y,1)
            ExitLoop
            EndIf
    WEnd
    Sleep (300)
    ;chon vao da thanh toan
    While 1
        Local $x = 0, $y = 0
        Local $timkiemhd =_ImageSearch(@ScriptDir& "\xuat hoa don tam"& "\app9.bmp",1, $x, $y,0)
        if $timkiemhd = 1 Then
            MouseClick ("left",$x  , $y,1)
            ExitLoop
            EndIf
    WEnd
    Sleep (500)
    ; chon vao da tim kiem
    While 1
        Local $x = 0, $y = 0
        Local $timkiemhd =_ImageSearch(@ScriptDir& "\xuat hoa don tam"& "\app10.bmp",1, $x, $y,0)
        if $timkiemhd = 1 Then
            MouseClick ("left",$x  , $y,1)
            ExitLoop
            EndIf
    WEnd
    Sleep (500)
    ;dien ma cong van
    While 1
        Local $x = 0, $y = 0
        Local $timkiemhd =_ImageSearch(@ScriptDir& "\xuat hoa don tam"& "\app11.bmp",1, $x, $y,0)
        if $timkiemhd = 1 Then
            MouseClick ("left",$x, $y + 15)
            Sleep (300)
            $copy = _ExcelCopy ($oExcel,"A2")
            Send ("^v")
            ExitLoop
            EndIf
    WEnd
    Sleep (500)
    ; tich vao nut xem
    While 1
        Local $x = 0, $y = 0
        Local $timkiemhd =_ImageSearch(@ScriptDir& "\xuat hoa don tam"& "\app12.bmp",1, $x, $y,0)
        if $timkiemhd = 1 Then
            MouseClick ("left",$x +20 , $y,1)
            ExitLoop
            EndIf
    WEnd
    ;đồng ý
    Sleep (500)
    While 1
        Local $x = 0, $y = 0
        Local $timkiemhd =_ImageSearch(@ScriptDir& "\xuat hoa don tam"& "\app13.bmp",1, $x, $y,0)
        if $timkiemhd = 1 Then
            MouseClick ("left",$x , $y,1)
            ExitLoop
            EndIf
    WEnd
    Sleep(700)
    ;ghi hóa đơn
    While 1
        Local $x = 0, $y = 0
        Local $timkiemhd =_ImageSearch(@ScriptDir& "\xuat hoa don tam"& "\app14.bmp",1, $x, $y,0)
        if $timkiemhd = 1 Then
            MouseClick ("left",$x , $y,1)
            ExitLoop
            EndIf
    WEnd
    _ExcelRowDelete($oExcel, 2)
    Sleep (300)
    _ExcelBookSave ($oExcel,0)
    Sleep (300)
    _ExcelBookClose($oExcel, 0, 0)
    Sleep (1000)
    MsgBox (0,"Hôm nay ông chủ Tâm thật đẹp zai ạ.!","Đã xong, ông chủ kiểm tra và thao tác tiếp!")

     
     
  2. okchoac

    okchoac Thành viên mới
    • 3/6

    Tham gia ngày:
    18/2/20
    Bài viết:
    4
    Đã được thích:
    2
    ném hết các bước trên vào 1 func _tambd()
    $solanchay = inputbox ("cảm ơn anh okchoac","nhập số lần chạy")
    $soluotdachay = 1
    while $soluotdachay <=number ($soladachay)
    _tambd()
    $soluotdachay+=1
    Wend
    m cũng newbie. bác nào có code gọn hơn thì tư vấn nhé :D
     
    minhtam143 thích bài này.
  3. minhtam143

    minhtam143 Thành viên mới
    • 1/6

    Tham gia ngày:
    25/3/20
    Bài viết:
    19
    Đã được thích:
    0
    hehe, tks bác nhiều, nhưng bác có thể viết rõ hơn được ko ạ, vì phần tạo hàm e hơi lơ mơ.
     
    Chỉnh sửa cuối: 18/5/20
  4. okchoac

    okchoac Thành viên mới
    • 3/6

    Tham gia ngày:
    18/2/20
    Bài viết:
    4
    Đã được thích:
    2
    func _laphoadon()
    copy code từ phần tạo hóa đơn tới _ExcelBookClose
    endfunc ;->>>đã tạo xong 1 fun

    $solanchay = inputbox ("cảm ơn anh okchoac","nhập số lần chạy")
    $soluotdachay = 1
    while $soluotdachay <=number ($soladachay)
    _laphoadon() ;----->gọi func
    $soluotdachay+=1
    Wend
     
    minhtam143 thích bài này.
  5. minhtam143

    minhtam143 Thành viên mới
    • 1/6

    Tham gia ngày:
    25/3/20
    Bài viết:
    19
    Đã được thích:
    0
    cảm ơn a Choác, qua đây e đã hiểu thêm về cách tạo Function luôn :d :D
     

Chia sẻ trang này

Đang tải...