真的很痛苦
每次都是用下班時間
但是每次都是晚上10點後,才有辦法想這個有的沒有的
累.....
因為同事真的很不用心 老闆說這樣不行 資料要確實填寫
要我想辦法
真的會翻桌的感覺
為什麼別人出錯 我在收尾 而不是請對方改掉壞習慣....
好啦 切入主題 利用觸發事件控制存檔
之前一直在想 要怎麼樣在存檔前,確認主要的東西是否有填寫,不然限制不能存檔
我當初只有學習到,利用資料驗證,確認那些資料要填寫
驗證資料也可以用公式(其實還滿好用的 我幾乎是用清單和公式) ---->下次有心情 在來寫
開啟EXCEL的VB(visual basic)-->選擇專案-VBAProject-->選擇This Workbook
畫面上方"一般"和"宣告"更改為workbook和Beforesave
保留 Private sub Workbook_beforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
End Sbu
其他刪除
=====================================================================
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'選擇存檔
If WorksheetFunction.CountA(Sheets(1).Cells(1, 2), Sheets(1).Cells(2, 2)) = 0 Then
ElseIf WorksheetFunction.CountA(Sheets(1).Cells(1, 2), Sheets(1).Cells(2, 2)) = 2 Then
Else
MsgBox ("請確認資料填寫完全")
Cancel = True '不存檔 回到編輯頁面
End If
If SaveAsUI = True Then '選擇另存新檔
If WorksheetFunction.CountA(Sheets(1).Cells(1, 2), Sheets(1).Cells(2, 2), _
Sheets(2).Cells(1, 2), Sheets(2).Cells(2, 2)) = 0 Then
ElseIf WorksheetFunction.CountA(Sheets(1).Cells(1, 2), Sheets(1).Cells(2, 2), _
Sheets(2).Cells(1, 2), Sheets(2).Cells(2, 2)) = 2 Then
Else
MsgBox ("請確認資料填寫完全")
Cancel = True '不存檔 回到編輯頁面
End If
End If
End Sub
=======================================================
上面的程式是選擇"儲存檔案"之前,檢查sheet1的B1和B2是否有資料
若B1有資料B2沒資料,B1沒資料B2也沒資料 --------->不能存檔
若B1和B2都有資料,或者B1和B2都沒有資料 --------->可以存檔(為什麼要設沒資料 是因為我等等要儲存檔案用的 XD)
下面 SaveAsUI = Ture ---->是選擇另存新檔之前,檢查sheet1和sheet2的 B1和B2是否有資料
若sheet1和sheet2 的 B1有資料B2沒資料,B1沒資料B2也沒資料 --------->不能存檔
若sheet1和sheet2 的 B1和B2都有資料,或者B1和B2都沒有資料 --------->可以存檔(為什麼要設沒資料 是因為我等等要儲存檔案用的 XD)
差別在 儲存檔案的時候 限制他們一定要填寫 工作表1 的 B1和B2
另存新檔的時候 限制他們一定要填寫工作表1和工作表2 的 B1和B2
其實還有其他的選擇可以選
我看國外的網站有提到可以選擇AfterSave
但是我實在太害怕 我同事會跟我說 就跳過去 反正可以存檔就好
(曾經我用資料驗證 限制他們打的內容 結果在入檔的時候 發現奇怪 怎麼無法存入 結果發現那儲存個怪怪的
資料驗證是不能輸入的 我問他為什麼可以輸入進去 他還跟我說 他超級辛苦把它填進去的
所以她真的不理我的提示對話視窗 有無言吧
題外話:驗證資料如果用複製貼上 是可以填上去的 因為驗證資料也被蓋住了)
參考資料
1.http://www.yestome.com/forum/viewtopic.php?p=3402&sid=851a5bc31821f798d18c4b8afe1c46a7
2.http://white5168.blogspot.com/2016/09/excel-1.html#.W-qNd-gzZPY
3.https://www.mrexcel.com/forum/excel-questions/947888-vba-different-beforesave-save-save.html
留言列表