Excel VBA 做一個計劃清單

目前在看《搞定》一書,裡面提及要“清空大腦”,簡單的講“清空大腦”就是把腦子裡面未完成的事項做一個清單,然後在對任務進行分類處理,一項一項的完成。

結合之前發佈的刪除空白單元格,可以做一個簡單的計劃清單。清單需要實現以下幾個功能:

1:設定任務只能是完成或未完成狀態,不能再表格裡面輸入其它的內容。方便管理

2:已經完成的任務,在清單裡面進行刪除。

代碼已經初步完成,運行成果如下:

Excel VBA 做一個計劃清單

代碼解析:

1:點擊設置以後,是否完成的那一列裡面只能輸入完成、完成及空,如果輸入了其它內容。表格會進行報警。此代碼,只要最開始,運行一次就可以了。後續無需再運行

Sub 開始前的設置()

With Range("a6:a105").Validation

.Delete

.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _

xlBetween, Formula1:="完成,未完成"

.IgnoreBlank = True

.InCellDropdown = True

.InputTitle = ""

.ErrorTitle = ""

.InputMessage = ""

.ErrorMessage = ""

.IMEMode = xlIMEModeNoControl

.ShowInput = True

.ShowError = True

End With

End Sub

效果如下:

Excel VBA 做一個計劃清單

2:點擊刪除已完成的任務按鈕,運行的代碼,其實是刪除空白行的一種運用。代碼如下:

Sub 刪除已經完成的任務()Dim arr, narr = Sheet1.Range("a6:b105")For n = 1 To UBound(arr) If arr(n, 1) = "完成" Then arr(n, 2) = ""Next nSheet1.Range("a6:b105") = arri = Sheet1.Range("b" & Rows.Count).End(xlUp).RowFor n = i To 6 Step -1 If Cells(n, 2) = "" Then Rows(n).Delete End IfNext nEnd Sub

兩個子程序,就可以完成一個簡單的計劃清單。當然此清單還可以繼續深入,如把已經完成的清單,放在已經的工作表裡面,又或者把任務進行分類。把不同類的任務放入不同的工作表裡面。這個表格以後可以再進行深入的分析。


分享到:


相關文章: