作者foolkids (翼をください)
看板Office
標題[算表] 回傳使用者於UserForm按下哪個按鈕?
時間Sat Apr 21 06:40:26 2018
軟體: Office Excel
版本: 2010
手機發文,排版見諒…
寫了一個UserForm,裡面有幾個CommandButton。
目的是為了取代內定的MsgBox功能。
在使用MsgBox時,可以回傳使用者按下的是哪個按鈕,但是在自訂的UserForm卻找不到方式回傳…
試了以下方式:
1. 於UserForm裡加入一個Label1,每個按鈕按下時都會對這個Label賦值。
2. VBA裡再令變數 = UserForm1.Label1.Caption
但是無法成功,只會帶回Label1的預設值,也就是說關掉UserForm之後,對Label1的賦值就不見了。
想試著在unload UserForm之前就先取變數,但是好像無法?不知道有沒有前輩寫過類似的需求呢?
--
┌─────────────────────────────┐
│就這樣,終於到了啟程的日子。
│
│和來機場送行的朋友們說著玩笑話,其實內心恍恍惚惚像在作夢。
│
│也似乎是因為,
為了走到「出發」這一步,耗盡了全部心力。 │
└─────────────────石田裕輔《不去會死!》─┘
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.136.102.241
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Office/M.1524264033.A.A32.html
1F:→ newacc: 要把值存在模組裡 04/21 08:40
2F:→ foolkids: 在模組層次宣告變數的意思嗎? 04/21 09:30
3F:→ soyoso: 賦值後,執行vba的流程是?於userform內按下commandbutton 04/21 10:27
4F:→ soyoso: ?還是以其他方式? 04/21 10:27
5F:→ foolkids: 藉由傳回的值來在原來sub內決定程序的後續執行,Command 04/21 10:52
6F:→ foolkids: Button只是一個讓使用者選擇的概念 04/21 10:52
7F:→ soyoso: 前者,如unload userform寫在模組程序內,則改為於 04/21 10:53
8F:→ soyoso: commandbutton內傳值到程序,就可以unload userform 04/21 10:55
9F:→ soyoso: 程序(變數)的方式 04/21 10:55
10F:→ foolkids: 我會在CommandButton的程序內將Label賦值後關閉UserForm 04/21 10:55
11F:→ foolkids: 。 04/21 10:55
12F:→ soyoso: 抱歉應是 程序名稱 變數(或以label1.caption) 04/21 10:57
13F:→ soyoso: 那流程是從sub內userform.show,讓使用者選擇後,unload 04/21 11:00
14F:→ soyoso: 回原sub,可以取得所選取commandbutton的資訊 04/21 11:02
15F:→ soyoso: 如果是的話sub上方public 變數,按下觸發事件內變數 = 04/21 11:05
16F:→ soyoso: commandbutton要回傳的資訊 04/21 11:06
17F:→ soyoso: sub內再引用該變數 04/21 11:07
18F:→ foolkids: 其實我現在確實是在Sub內load userform,待user按下butt 04/21 11:08
19F:→ foolkids: on後,寫入label並unload UserForm。回到sub後,設定變 04/21 11:08
20F:→ foolkids: 數為label.caption。可是好像要在unload前取到變數?可 04/21 11:08
21F:→ foolkids: 是我找不到在unload前將變數取回到sub的方式… 04/21 11:08
22F:→ foolkids: 哦哦哦!好喔,我試試看public的方式,謝謝! 04/21 11:08
23F:→ foolkids: So大,還是不行耶,已經設定共用變數了,UserForm.Show 04/21 13:08
24F:→ foolkids: 之後會顯示變數未定義,所以繼承不過去 04/21 13:08
25F:→ foolkids: 後來用一個奇怪的方式解決,但是還是想知道有沒有更直覺 04/21 13:13
26F:→ foolkids: 的? 我在CommandButton_Click裡去呼叫原模組內的一個su 04/21 13:13
27F:→ foolkids: b,這樣才可以直接對原模組內的Public變數賦值。 04/21 13:13
29F:→ soyoso: userform commandbutton按下觸發寫入變數 unload是可回傳 04/21 13:21
30F:→ soyoso: 所按下commandbutton的caption 04/21 13:21
31F:→ foolkids: 奇怪… 寫法一樣卻沒辦法重現… 版本問題? 04/21 14:19
32F:→ foolkids: 阿,我有個地方寫錯了… SO大的可行,謝謝! 04/21 14:28