返回列表 上一主題 發帖

[發問] 如何執行2個SetFocus?

[發問] 如何執行2個SetFocus?

TextBox7 = Month(Date) & "/" & Day(Date)
    TextBox7.SetFocus
    SendKeys "{Enter}"
   
    TextBox1 = Date
    OptionButton2.Value = True
    TextBox2.SetFocus


紅色的部分會無法被執行到如果把TextBox2.SetFocus拿掉則可以執行
是否2個SetFocus較上方的會被省略呢?

回復 4# av8d
  1. Option Explicit
  2. Private Sub Ex()
  3.     TextBox7 = Month(Date) & "/" & Day(Date)
  4.     TextBox1.SetFocus
  5.     Application.SendKeys ("~")      'KeyCode = 13
  6.     'Application.SendKeys "{ENTER}" 'KeyCode = 43
  7.     DoEvents                        '使用SendKeys 要將控制權傳回系統
  8.     TextBox1 = Date
  9.     OptionButton2.Value = True
  10.     TextBox2.SetFocus
  11. End Sub
  12. Private Sub TextBox7_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  13.    MsgBox KeyCode
  14.     If KeyCode = 13 Then ActiveSheet.UsedRange.AutoFilter 1, "=" & DateValue(TextBox1)
  15. End Sub
複製代碼

TOP

本帖最後由 av8d 於 2012-6-28 16:06 編輯

回復 2# GBKEE


    TextBox1 = Date
    TextBox1.SetFocus
    SendKeys "{Enter}"
可是如果
    UserForm1.TextBox1.SetFocus
    UserForm1.SendKeys "{Enter}"
就不行

TOP

回復 1# av8d
如果要在按下CommandButton按鈕後~執行到TextBox1然後作Enter的動作該如何寫?
你的意思是  按下CommandButton 後會執行到 TextBox1_KeyDown這程序是嗎?
  1. Private Sub CommandButton1_Click()
  2.      TheAutoFilter
  3. End Sub
  4. Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  5.     If KeyCode = 13 Then  TheAutoFilter
  6. End Sub
  7. Private Sub  TheAutoFilter()
  8.       ActiveSheet.UsedRange.AutoFilter 1, "=" & DateValue(TextBox1)
  9. End Sub
複製代碼

TOP

(謝謝G大,完成)如何在按下按鈕後~執行到TextBox1然後作Enter的動作(自訂表單)

本帖最後由 av8d 於 2012-6-28 17:00 編輯

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then ActiveSheet.UsedRange.AutoFilter 1, "=" & DateValue(TextBox1)
End Sub

以上是如果在TextBox1按Enter後作動作

如果要在按下CommandButton按鈕後~執行到TextBox1然後作Enter的動作該如何寫?

(以上都是在自訂表單執行)

KeyPress

TOP

        靜思自在 : 人要自愛,才能愛普天下的人。
返回列表 上一主題