2012-07-10 405 views
1

我對VBA相對比較陌生,並且正在爲我的僱主開發一個小型數據庫。我試圖創建一個文本框,當點擊它時,刪除我已經放入的內容。例如,我有一個文本框,上面寫着「第一個」,以便他們輸入成員的名字。當他們點擊它時,我希望我的文本消失,以便可以輸入他們想要的內容。 (它只能執行一次的問題很容易用if語句解決)。我看了下面的問題,但都沒有答案爲我工作;在VBA中單擊清除文本框

Clear text in textbox upon clicking it

下面的代碼沒有做任何

Private Sub TextBox1_GotFocus() 
TextBox1.Text = "" 
End Sub 

而下面的代碼給我一個「預期,語句的結束」編譯錯誤的「手柄」;

Private Sub txtNewNameHere_GotFocus() Handles txtNewNameHere.GotFocus 
txtNewNameHere.Text = "" 
End Sub 

不知道爲什麼這些對我來說都不起作用,但正如我所說的,我對此相對來說比較陌生。任何幫助不勝感激。

+0

文本框'txtNewNameHere'的名稱是什麼? – danielpiestrak 2012-07-10 00:14:39

+1

@nobillygreen:你確定你是用VBA做的嗎?對於VBA,請參閱mkingston的答案。對於vb6,請參閱Gimp的回答,對於vb.net,請使用像您在代碼中那樣的「處理txtNewNameHere.GotFocus」。 – 2012-07-10 08:15:49

回答

1

這將清除焦點文本框,如果它不已經有了焦點:

Private Sub TextBox1_Enter() 
    TextBox1.Value = "" 
End Sub 

它不會每次被點擊時清除該文本框。這有幫助嗎?

+1

+ 1這是VBA的正確方法。 – 2012-07-10 08:14:48

+0

也許這是因爲TextBox在工作表上,而不是在表單上?也許OP可以澄清它是什麼。 – datatoo 2012-07-10 16:18:13

+0

該文本框確實是一種形式。這對我有用,謝謝! – nobillygreen 2012-07-11 18:36:41

2

假設您的文本框的名稱是「文本1」下面的事件會做你要找的內容:

Private Sub Text1_GotFocus() 
    If Me.Text1.Value = "First" Then 
     Me.Text1.Value = "" 
    End If 
End Sub 

我總是把我的。在對象前面引用表單。

我不清楚你的文本框的名稱是'TextBox1'還是'txtNewNameHere'從上面的代碼示例中,所以我只是在上面的代碼中使用了一個通用的'Text1'。

如果你不確定你的文本框的名稱爲自己右鍵單擊文本框,然後選擇「屬性」

更新: 假定文本框定位於一個表單對象。

+0

實際上,這並不適用於我...由於某些原因,GotFocus方法永遠不會被調用(我甚至在if之前放置了一個MsgBox語句以查看它是否正在激活)。我刪除了文本框所在的框架,因爲我想我可能會點擊THAT而不是實際的文本框。仍然沒有。但是,我確實設法讓它與MouseDown命令一起工作。但是,我仍然想知道爲什麼你的工作不適合我。 – nobillygreen 2012-07-10 00:49:29

+2

當我嘗試它時,這對我有用。它需要被輸入框中的工作表的代碼,而不是在模塊中。 – Jesse 2012-07-10 04:26:28

+1

這對我也不起作用。看到我的答案。 – mkingston 2012-07-10 07:46:22

相關問題