- 帖子
- 835
- 主題
- 6
- 精華
- 0
- 積分
- 915
- 點名
- 1
- 作業系統
- Win 10,7
- 軟體版本
- 2019,2013,2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2025-7-5
|
6#
發表於 2015-4-11 06:43
| 只看該作者
本帖最後由 luhpro 於 2015-4-11 06:52 編輯
Sendkeys 巨集的陳述式
我的系統是 Win 7 搭配 Excel 2003 與 Excel 2013 測試過都可以正常運作喔.
因為我沒有 Win 8,
不能測試在Win 8中這些複合按鍵的反應是否有差別.
最簡單的確認方式是你可以開 Word:
'這個每執行一次就只會再狀態 A與B 交換,不會是能被掌握的狀態
SendKeys "^ ", True
此項複合按鍵是 Ctrl + Space(空白鍵) , 功能是在 輸入英文模式 與 輸入中文模式 間來回切換.
之後直接在鍵盤上按著 Ctrl 鍵不放,
再按一下 空白 鍵,
接著放掉 Ctrl 鍵,
看輸入法切換是否正常,
'這個沒反應
SendKeys "^+1", True
此項複合按鍵是 Ctrl + Shift + 1 , 依你的設定功能是切換到微軟注音.
或者按著 Ctrl 鍵與 Shift 鍵不放,
再按一下 1 按鍵,(數字鍵建議都使用鍵盤右邊數字鍵區中的按鍵, 左邊的數字鍵有時會有不同的意義)
接著放掉所有按鍵,
看輸入法是否有切換到微軟注音,
若沒反應可能是系統設定需要再做調整.
看圖說故事,
依你擷取的畫面我猜測,
你可以試試在後面那個 進階設定畫面 中,
切換輸入法 項下,
讓我為每個應用程式視窗...
將那個打勾 並套用後看看是否能正常切換.
'這個沒反應
SendKeys "%+", True
這個沒反應是正常的,
%+ 是同時按下 Alt 與 Shift 按鍵,
沒有搭配同時按下其他按鍵不應該有反應.
回復 luhpro
補充說明:
#4 內 3 段程式都會使 數字鍵盤的 NumLock 來回的 鎖定與釋放
Scott090 發表於 2015-4-9 14:29 
這裡看不到你呼叫 KeyBoard 那些副程式的方式,
如果呼叫前後有迴圈那麼有可能執行數次 KeyBoard 副程式(按鍵好幾次了),
這一點也是需要確認的.
另外這一行:
Application.Wait Now + TimeValue("00:00:02")
可以通通用 ' 把它 Mark 掉,
因為 SendKeys 後面放 True,
已經會等到輸入狀態切換完畢才會繼續執行下去,
不需要再執行等待作業.
或者你也可以在 即時運算視窗 中輸入:
SendKeys "^ ", True
或
SendKeys "^+1", True
後按下 Enter 按鍵直接執行.
看輸入模式是否有正確切換過去,
若這裡不能正確切換,
那放進 VBA 程式碼中也不會正確切換. |
|