2010-07-14 71 views
0

的Win-XP/2003的Excel/VBA ....Excel中的CommandBars當地語言/控制

我有下面一段代碼來截取用戶(主菜單,上下文菜單和控制啓動的所有活動貼-V鍵)並將其發送給Sub TrappedPaste()

.... 
Application.CommandBars("Edit").Controls("Paste").OnAction = "TrappedPaste" 
Application.CommandBars("Edit").Controls("Paste Special...").OnAction = "TrappedPaste" 
Application.CommandBars("Cell").Controls("Paste").OnAction = "TrappedPaste" 
Application.CommandBars("Cell").Controls("Paste Special...").OnAction = "TrappedPaste" 
Application.OnKey "^v", "TrappedPaste" 
.... 

此代碼正常工作。 (A)leut和(Z)apotec之間的德語,法語和所有其他語言的「編輯」不是「編輯」和「粘貼」不是「粘貼」 Ø

問:

  1. 是否有從 語言Excel的用戶界面,即實現 獨立的方式 有一個數字aequivalent到相同 的 「粘貼」的說法所有國家語言?
  2. 我怎麼找到這個數字?
  3. 是所有本地Windows語言中的ctrl-V總是ctrl-v?

預先感謝任何幫助

親切的問候拾音

+1

你忘了'Shift + Ins'和右鍵單擊。 – GSerg 2010-07-14 08:24:43

+0

@GSerg:謝謝你對Shift-Ins的提示....右鍵單擊打開的上下文菜單是由... CommandBars(「Cell」).... – MikeD 2010-07-14 08:29:20

回答

2

工具欄上的每個控件都可以與FindControl功能使用的ID

? application.CommandBars("Edit").FindControl(msoControlButton, 22).Caption 

其中22Paste按鈕的ID。據我所能檢查,這個數字是不同的語言相同。
所以你可以在英文版中查找它們並對它們進行硬編碼。

+0

好吧,我會嘗試;和命令欄名稱呢,他們有類似的ID,因爲EDIT不是其他語言編輯 – MikeD 2010-07-14 08:48:28

+0

ahhhh我看,他們也有一個ID以及.... hack-hack – MikeD 2010-07-14 08:49:24

+1

不,編輯IS編輯在其他語言中。因爲與控件不同,命令欄具有'.Name'和'.NameLocal'。 – GSerg 2010-07-14 09:15:27