返回列表 上一主題 發帖

焦點及控制權問題

焦點及控制權問題

本帖最後由 reangame 於 2023-4-19 23:21 編輯
  1. Private Sub CommandButton1_Click()
  2. ActiveCell.Value = "▲"
  3. ActiveCell.Offset(0, 1).Select
  4. ThisWorkbook.ActiveSheet.Activate ' 將控制權轉移到目前工作表
  5. End Sub
複製代碼
請問我在工作表中建立一個按鈕1,呼叫表單
然後表單上建立按鈕2(上方為程式碼),
在工作表當前儲存格插入文字後,選取右邊儲存格,執行都正確,
但是,結束之後,無法直接使用鍵盤在工作表輸入資料,
點擊方向鍵,發現表單上的按鈕在切換選取狀態,
如何撰寫程式碼,點擊按鈕2完成動作之後,可以直接使用鍵盤在工作表輸入資料呢?
  1. Private Sub UserForm_Activate()
  2. Dim ctrl As Control
  3. For Each ctrl In Me.Controls
  4. If TypeName(ctrl) = "CommandButton" Then
  5. ctrl.TabStop = False
  6. End If
  7. Next ctrl
  8. End Sub
複製代碼
TabStop屬性+Default屬性均已設定為false
  1. Private Sub CommandButton1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  2. If KeyCode = vbKeyTab Then
  3. Application.SendKeys "{TAB}"
  4. KeyCode = 0
  5. End If
  6. End Sub
複製代碼
這是chatgpt給的解法,仍然無法解決
  1. Sub showUF1()
  2.     UserForm1.Show modeless
  3. End Sub
複製代碼
這是按鈕1的程式碼
我是斯多

請問各位大大,這是無解的問題嗎?
我是斯多

TOP

本帖最後由 singo1232001 於 2023-7-24 02:19 編輯

回復 2# reangame

Public actRng
Private Sub CommandButton1_Click()
actRng.Value = "▲"
'actRng.Offset(0, 1).Select
'ThisWorkbook.ActiveSheet.Activate ' 將控制權轉移到目前工作表

unload me
'或者可以試試看UserForm1. Hide
End Sub


Private Sub UserForm_Activate()
Dim ctrl As Control
For Each ctrl In Me.Controls
If TypeName(ctrl) = "CommandButton" Then
ctrl.TabStop = False
End If
Next ctrl
End Sub

Private Sub CommandButton1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyTab Then
Application.SendKeys "{TAB}"
KeyCode = 0
End If
End Sub
複製代碼

Sub showUF1()
    set actRng = ActiveCell
    UserForm1.Show 0 'modeless
End Sub

TOP

        靜思自在 : 【時間如鑽石】時間對一個有智慧的人而言,就如鑽石般珍貴;但對愚人來說,卻像是一把泥土,一點價值也沒有。
返回列表 上一主題