有道翻译 excel webservice 失效_VBA实践+excel英文逐句自动有道翻译为中文
生活随笔
收集整理的這篇文章主要介紹了
有道翻译 excel webservice 失效_VBA实践+excel英文逐句自动有道翻译为中文
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
VBA實(shí)踐+excel英文逐句自動有道翻譯為中文
有一個需求是這樣的,如下圖所示,在一個excel工作表中,B列是英文,每一個單元格一句英文,在C列要填英文對應(yīng)的有道機(jī)譯結(jié)果。為保證準(zhǔn)確度,要求必須一句句翻譯,不能把英文做成一個文檔再上傳有道翻譯。
excel英語翻譯嘗試使用VBA代碼模擬鍵盤和鼠標(biāo)自動完成復(fù)制單元格英文-粘貼到有道客戶端的輸入框-等待翻譯結(jié)果-復(fù)制翻譯結(jié)果-粘貼到對應(yīng)的單元格中的整個過程。代碼實(shí)現(xiàn)環(huán)境為64位win8.1,64位excel2010,有道桌面客戶端,代碼如下。模擬的鼠標(biāo)鍵盤按鍵可能會被網(wǎng)站、軟件等攔截,用到其他地方不一定管用哦。
Private Declare PtrSafe Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As LongPtr 'SetCursorPos函數(shù)把光標(biāo)移到屏幕的指定位置 Private Declare PtrSafe Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)'這是 VB API 函數(shù)聲明, '在 WINDOWS 系統(tǒng)中有個文件 kernel32.dll 動態(tài)連接(函數(shù))庫文件,里面包含好多WINDOWS 功能的函數(shù)。該聲明是指,在所寫的程序中要用到這個庫文件中的一個函數(shù) Sleep, 它的參數(shù)是dwMilliseconds. '功能是,讓這條語句的下一條語停頓 dwMilliseconds 時間后再運(yùn)行。單位為毫秒 Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)Private Const MOUSEEVENTF_LEFTDOWN = &H2 '按下左鍵,&H2表示2的十六進(jìn)制值 Private Const MOUSEEVENTF_LEFTUP = &H4 '釋放左鍵,&H4表格4的十六進(jìn)制值Private Sub 單擊() mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 '高版本系統(tǒng)如win10可能需要使用call調(diào)用ddl動態(tài)連接這樣才能生效,如call mouse_event (MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0).https://blog.csdn.net/qq_39533125/article/details/75220288 Sleep 50 mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 Sleep 100 End SubSub 自動發(fā)送翻譯()Dim WS As Worksheet Dim xPaste&, yPaste&, xCopy&, yCopy&, xClear&, yClear& Dim i% Dim myData As DataObjectSet WS = ThisWorkbook.Sheets("工作表1") '粘貼位置 xPaste = 217 yPaste = 96 '復(fù)制按鈕位置 xCopy = 198 yCopy = 551 '清除按鈕位置 xClear = 610 yClear = 288For i = 2 To 5WS.Cells(i, 2).CopySleep 500 '延時500毫秒SetCursorPos xPaste, yPaste '把光標(biāo)移動到屏幕輸入框位置DoEvents '會將控制權(quán)傳給操作系統(tǒng)。當(dāng)操作系統(tǒng)處理完隊列中的事件,并且在 SendKeys 隊列中的所有鍵也都已送出之后,返回控制權(quán)。Sleep 500Call 單擊DoEventsSleep 500Application.SendKeys "^V" '粘貼英文到輸入框DoEventsSleep 500SetCursorPos xCopy, yCopyDoEventsSleep 2000 '等待翻譯結(jié)果出來Call 單擊 '單擊復(fù)制按鈕,復(fù)制翻譯結(jié)果DoEventsSleep 500SetCursorPos xClear, yClearDoEventsSleep 500Call 單擊DoEvents'把翻譯結(jié)果輸入到單元格中Set myData = New DataObjectWith myData.GetFromClipboardIf .GetText <> "" Then WS.Cells(i, 3).Value = .GetText '把剪貼板的文本放入到單元格End WithSet myData = NothingNext iMsgBox "完成"End Sub知乎視頻?www.zhihu.com想要學(xué)習(xí)更多關(guān)于excel vba的知識,可以看看這個很實(shí)用的書。
總結(jié)
以上是生活随笔為你收集整理的有道翻译 excel webservice 失效_VBA实践+excel英文逐句自动有道翻译为中文的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: github page hexo博客gi
- 下一篇: 数据清洗的基本流程_数据分析小白学习之路