Привет, AHKer im новичок здесь, я использую это, чтобы найти текст из буфера обмена в Excel, если ключевое слово find в столбце.B, скопируйте определенные ячейки, затем зациклируйте до тех пор, пока не найдете, но, однако, не работает ... вообще, может ли кто-нибудь сделать мне одолжение? как заставить его работать? благодаря!Excel Найти ключевое слово из буфера обмена (Loop до тех пор, пока не будет найден)
#SingleInstance force Ignore off
SetDefaultMouseSpeed, 0
IfWinExist, ahk_class Progman
WinActivate
Sleep 100
PostMessage, 0x50, 0x0804,0,, A
clipboard =
Sleep 300
IfWinExist, huasheng
WinActivate
Sleep 500
KeyWait, LButton, D
Sleep 1000
Click 3
Send, ^c
ClipWait
StringReplace, clipboard, clipboard, `n,, all
StringReplace, clipboard, clipboard, `r,, all
var := clipboard
var := SubStr(var, InStr(var, "%A_Space%") + 1, InStr(var, "(") - InStr(var, "):") - 3)
Clipboard := var
Xl := ComObjCreate("Excel.Application")
Xl.Visible := True
Xl := ComObjActive("Excel.Application")
wbk := Xl.Workbooks.Open("C:\Users\iViLL\Google Drive\Doc\ExportOrderList201606161859.Xlsx")
t := %Clipboard%, found := false
x := Xl.Range("B:B").Find(t).row
for Sheet, in wbk.Sheets
{
if (!c := x)
continue
if (!found)
found := true
first := c.Value
Loop
{
Xl.Range("A" x).Copy
StringReplace, clipboard, clipboard, `n,, all
StringReplace, clipboard, clipboard, `r,, all
MyVar1 :=Clipboard
Xl.Range("B" x).Copy
StringReplace, clipboard, clipboard, `n,, all
StringReplace, clipboard, clipboard, `r,, all
MyVar2 :=Clipboard
Xl.Range("J" x).Copy
StringReplace, clipboard, clipboard, `n,, all
StringReplace, clipboard, clipboard, `r,, all
MyVar3 :=Clipboard
Xl.Range("K" x).Copy
StringReplace, clipboard, clipboard, `n,, all
StringReplace, clipboard, clipboard, `r,, all
StringReplace, clipboard, clipboard, %A_Space%,, all
MyVar4 :=Clipboard
Xl.Range("H" x).Copy
StringReplace, clipboard, clipboard, `n,, all
StringReplace, clipboard, clipboard, `r,, all
MyVar5 :=Clipboard
Xl.Range("M" x).Copy
StringReplace, clipboard, clipboard, `n,, all
StringReplace, clipboard, clipboard, `r,, all
MyVar6 :=Clipboard
Xl.Range("N" x).Copy
StringReplace, clipboard, clipboard, `n,, all
StringReplace, clipboard, clipboard, `r,, all
MyVar9 :=Clipboard
Xl.Range("U" x).Copy
StringReplace, clipboard, clipboard, `n,, all
StringReplace, clipboard, clipboard, `r,, all
StringReplace, clipboard, clipboard, %A_Space%,, all
MyVar7 :=Clipboard
Xl.Range("AA" x).Copy
StringReplace, clipboard, clipboard, `n,, all
StringReplace, clipboard, clipboard, `r,, all
StringReplace, clipboard, clipboard, %A_Space%,, all
MyVar8 :=Clipboard
IfWinExist Untitled - Notepad
{
WinActivate
WinWaitActive Untitled - Notepad
}
else
IfWinNotExist Untitled - Notepad
{
run, C:\WINDOWS\system32\notepad.exe
WinWaitActive Untitled - Notepad
}
Sleep 1000
SendRaw ID:%MyVar2%`nNum:%MyVar1%`nStatus:%MyVar5%`nAddress:%MyVar3%,%MyVar6%,%MyVar9%,%MyVar4%
If (MyVar8)
{
IfInString, MyVar7, New Address
{
SendRaw `n%MyVar7%
}
else
IfNotInString, MyVar7, New Address
{
SendRaw `nNew Address:%MyVar3%,%MyVar6%,%MyVar9%,%MyVar8%
}
}
else
{
Sleep 100
}
Sleep 500
Send, ^a
Sleep 100
Send, ^c
Sleep 100
Send, {Delete}
Sleep 300
Winclose, Untitled - Notepad
IfWinExist, huasheng
WinActivate
WinWaitActive huasheng
Send, ^v
c := Sheet.Range("B:B").FindNext(c)
} Until (c.Value = first)
}
if (!found)
msgbox not found!
Return
сжать ваш код вниз до самой части, где код не работает (используйте' msgbox' для отладки), а затем кто-то может помочь вам – Blauhirn