真的很痛苦

每次都是用下班時間

但是每次都是晚上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

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 future0613 的頭像
    future0613

    心の日記

    future0613 發表在 痞客邦 留言(0) 人氣()