最近想編寫一段VBA程序,能夠把excel的數(shù)據(jù)自動輸入到公司的另一個遠(yuǎn)程控制的數(shù)據(jù)中去。因為我每天的日常工作就是把數(shù)據(jù)輸入到遠(yuǎn)程的數(shù)據(jù)庫,這樣不僅工作量大,而且很難保證準(zhǔn)確性。我在上網(wǎng)的時候無意中發(fā)現(xiàn)通過Excel VBA中的Sendkeys可以實現(xiàn)鍵盤的自動輸入。于是自學(xué)了幾個星期,冥思苦想,首先要解決的是能夠把數(shù)字輸入到遠(yuǎn)程數(shù)據(jù)庫中,于是編寫了如下代碼:
Private Sub cmdboxSave_Click()
If Application.Wait(Now + TimeValue("0:00:04")) Then
Dim I
For I = 1 To 6
sendkeys I
sendkeys “{ENTER}"
Next
End If
End Sub
操作方法是點(diǎn)擊Save控件,程序會自動延時4秒,在此期間點(diǎn)擊遠(yuǎn)程數(shù)據(jù)庫窗口,并點(diǎn)擊需要輸入數(shù)據(jù)的地方。接下來的情況應(yīng)該是數(shù)字會自動輸入到數(shù)據(jù)庫中,但數(shù)據(jù)庫沒有任何反應(yīng)。但是換成記事本或者是word/excel的話數(shù)字就一切順利地輸入到記事本和其他程序上。
后來我又從網(wǎng)上找到自動輸入數(shù)據(jù)的方法,用.bat批處理文件
@echo off
:start
echo set x = CreateObject("Wscript.shell")>x.vbs
echo Wscript.sleep 3000>>x.vbs
echo x.sendkeys "{1}">>x.vbs
echo x.sendkeys "{2}">>x.vbs
echo x.sendkeys "{3}">>x.vbs
echo Wscript.sleep 2000>>x.vbs
echo x.SendKeys "{ENTER}">>x.vbs
echo Wscript.sleep 2000>>x.vbs
call x.vbs &del x.vbs
goto start
這次數(shù)字可以發(fā)到遠(yuǎn)程數(shù)據(jù)庫中,但結(jié)果是123123123,也就是說沒有回車。
在此請教各位大俠
Excel VBA能否像.bat文件一樣把數(shù)據(jù)輸入到遠(yuǎn)程數(shù)據(jù)庫中?(沒有回車也行,可以在數(shù)據(jù)插入延時,手動回車)
或者還有沒有更好的辦法??
(說明一點(diǎn)的是那個數(shù)據(jù)庫沒辦法導(dǎo)入數(shù)據(jù),現(xiàn)在我們公司的人都在手動錄入。)
先謝謝了!?。?/p>