想要按下按鈕後從第一列開始檢查,如果儲存格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
VBA有個Debug功能可以用來自行偵錯程式,不用什麼都拿出來問,初學者一定要學會獨立Debug程式,不是什麼都拿出來問,結果還是沒學好VBA。
不好意思 你的問題應該只是 按鈕沒有連接到 按鈕9_Click 的這個sub之中
先確定一下妳的 按鈕是表單控制項的 還是ActiveX,兩種按鈕 連結方式不太一樣
依您的情況應該是 表單控制新增的, 你可以直接 滑鼠在 Module 裡面的
Sub 按鈕9_Click() 下面程式中間 點一下 F8 看會不會跑 就知道了
而且 您這樣寫 每驗證 FM欄位後 都會 show Done這個字
其本上 MsgBox "Done" 寫在 Next i 下面就好 全部完成只要跑一次 即可。