Board logo

標題: [發問] 按鈕為動態文字 [打印本頁]

作者: y54161212    時間: 2022-7-14 16:56     標題: 按鈕為動態文字

Hi 各位前輩好
我試著想要用一個VBA按鈕內的文字為動態
如附加檔案內
當我將"V"放在C2時,為何點選執行鈕之後,"V" 直接跳到C6?
是哪裡弄錯了嗎?
[attach]35046[/attach]
[attach]35045[/attach]
作者: y54161212    時間: 2022-7-14 17:13

本帖最後由 y54161212 於 2022-7-14 17:15 編輯
Hi 各位前輩好
我試著想要用一個VBA按鈕內的文字為動態
如附加檔案內
當我將"V"放在C2時,為何點選執行鈕 ...
y54161212 發表於 2022-7-14 16:56



是因為沒有設定斷點讓她維持住嗎?
意思是

當文字等於B2時,"V"跳到C3
然後要讓它脫離For這個迴圈才會讓"V"維持在C3
下一次點按鈕的時候
才會變成文字等於B3,"V"跳到C4
是這樣嗎?


==============================
已經解決
確實是如此
哈!
作者: mark15jill    時間: 2022-12-4 13:36

回復 2# y54161212


    你的code看不到有任何判斷式跳脫的存在
    只是單純的 迴圈執行~
作者: singo1232001    時間: 2022-12-5 00:57

本帖最後由 singo1232001 於 2022-12-5 00:59 編輯

回復 1# y54161212
作者: Andy2483    時間: 2022-12-5 10:59

本帖最後由 Andy2483 於 2022-12-5 11:02 編輯

回復 4# singo1232001


    謝謝前輩
這個範例對於後學太重要了!
對於儲存格內容編輯的觸發事件的陳述方法有更一層次的認知,運用一個布林變數在最前面終止再觸發
謝謝
未編輯C欄時:
[attach]35557[/attach]

編輯後:
[attach]35558[/attach]

後學的學習心得如下,請前輩再指導!謝謝
Option Explicit
Dim stopA, R&
'↑宣告變數!(stopA)是通用型變數,R是長整數
Private Sub Worksheet_Change(ByVal Target As Range)
'↑儲存格內容編輯觸發事件
If stopA = True Then Exit Sub
'↑如果stopA 這變數是布林值 True!就跳出程式執行
'這stopA 的初始值是 無
If Target.Count > 1 Then Exit Sub
'↑如果觸發格超過1格!就跳出程式執行
If Target.Column <> 3 Then Exit Sub
'↑如果觸發格不是在第三欄!就跳出程式執行
If Target.Row = 1 Then Exit Sub
'↑如果觸發格在第一列!就跳出程式執行
R = Cells(Rows.Count, 2).End(xlUp).Row
'↑令R變數 是B欄最後的有內容儲存格列號
If Target.Row > R Then Exit Sub
'↑如果觸發格的列號大於 R變數
If UCase(Target.Value) <> "V" Then Exit Sub
'↑如果觸發格的值轉大寫之後不是"V"英文字母!就跳出程式執行
'前面這些都是為了讓不符合需要的條件都 跳出程式執行
stopA = True
'↑令stopA 是布林值 True
Range("c2:c" & R).ClearContents
'↑令[C2]到C欄的R變數列儲存格清除內容
'1.這個動作會讓程序跳到最前面繼續執行,因為.ClearContents(清除內容)本來就是編輯儲存格
'所以初次觸發並沒有跑到下面的程序
'2.到了 If stopA = True Then Exit Sub 跳出程式執行 並還沒真正結束!
'因為第一次的觸發還沒往下跑完,會繼續往下程序繼續跑

Target.Value = "V"
'↑令觸發格的值是 "V"
stopA = False
'↑令stopA 這布林變數為 False
CommandButton1.Caption = Target.Offset(0, -1)
'↑令按鈕文字是 觸發格偏移左邊一欄的值
End Sub




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)