iT邦幫忙

0

Excel VBA插入按鈕程式碼

想要按下按鈕後從第一列開始檢查,如果儲存格FM1內容是「完成」,就將G1:CK1複製貼上值,而且保護G1:CK1,然後出現訊息「Done」。然後再檢查第二列、第三列⋯⋯⋯。

但是輸入下列程式碼後按了按鈕卻沒有反應,請問原因是什麼呢?

Sub 按鈕9_Click()

For i = 1 To Range("a100").End(xlUp).Row

If Range("FM" & i) = "完成" Then
ActivateSheet.Range("G" & i & ":CK" & i).Select
Selection.Copy

Selection.PasteSpecial Paste:=xlPasteValues
ActiveSheet.Range("G" & i & ":CK" & i).Locked = True

MsgBox "Done"

End If
Next i

End Sub

2 個回答

0
賽門
iT邦超人 1 級 ‧ 2019-03-17 15:47:25

VBA有個Debug功能可以用來自行偵錯程式,不用什麼都拿出來問,初學者一定要學會獨立Debug程式,不是什麼都拿出來問,結果還是沒學好VBA。

0
eva09qq
iT邦新手 5 級 ‧ 2019-03-19 16:27:31

不好意思 你的問題應該只是 按鈕沒有連接到 按鈕9_Click 的這個sub之中
先確定一下妳的 按鈕是表單控制項的 還是ActiveX,兩種按鈕 連結方式不太一樣
依您的情況應該是 表單控制新增的, 你可以直接 滑鼠在 Module 裡面的
Sub 按鈕9_Click() 下面程式中間 點一下 F8 看會不會跑 就知道了

而且 您這樣寫 每驗證 FM欄位後 都會 show Done這個字
其本上 MsgBox "Done" 寫在 Next i 下面就好 全部完成只要跑一次 即可。

我要發表回答

立即登入回答