Private Sub Worksheet_Change事件碰到的問題

來源:互聯網
上載者:User

之前動態表格的更新問題我都是加了一個按鈕來觸發更新的事件,簡潔卻不美觀。老大跟我說一定要解決,感謝崔兄之前告訴了active事件。後來查閱資料我又發現了有change事件!這個似乎更好用,通過更崔兄討論確定了用會計年度,會計週期,公司代碼這三個變數作為更新查詢的條件。

在寫代碼中我又發現了兩個問題,第一個問題是query裡有7個查詢,你怎麼知道那一個query最後更新。這個問題還是很好解決的,我寫了一段代碼測試了下,如下:

If Target.Address = "$CG$1" Or Target.Address = "$CH$9" Then
        MsgBox "query 7"
    ElseIf Target.Address = "$A$1" Or Target.Address = "$B$9" Then
        MsgBox "query 1"
    ElseIf Target.Address = "$Q$1" Or Target.Address = "$R$9" Then
        MsgBox "query 2"
    ElseIf Target.Address = "$AK$1" Or Target.Address = "$AK$9" Then
        MsgBox "query 3"
    ElseIf Target.Address = "$AX$1" Or Target.Address = "$AY$9" Then
        MsgBox "query 4"
    ElseIf Target.Address = "$BJ$1" Or Target.Address = "$BK$9" Then
        MsgBox "query 5"
    ElseIf Target.Address = "$BW$1" Or Target.Address = "$BX$9" Then
        MsgBox "query 6"
    End If

之前我還以為最後更新的會是最後插入的查詢,不過最後通過代碼居然發現是最先插入的查詢最後更新!而且每次的測試結果都一樣。從而確定了用第一個查詢的儲存格作為檢查更新的儲存格。

第二個問題就不那麼明顯了,代碼每次會在這裡報錯:

'選中要刪除的區間C_deltePlace,用序號來判斷
        While Worksheets(p_ContentSheet).Cells(p_conRows, 2).Value "" '根據空行判斷是否刪除
            '選中刪除
             Worksheets(p_ContentSheet).Cells(p_conRows, 2).Select
            Selection.EntireRow.Delete
        Wend

我還以為不能將代碼封裝在sub裡,但是我將代碼複製到change的sub裡也一樣。後來我將selcet去掉就可以完美執行了!

While Worksheets(p_ContentSheet).Cells(p_conRows, 2).Value "" '根據空行判斷是否刪除
        '選中刪除
         Worksheets(p_ContentSheet).Cells(p_conRows, 2).EntireRow.Delete
    Wend

不加selcet就可以了,怪不得提示range的select方法無效。對一門不熟悉的語言就是這樣,會碰到這樣那樣的錯誤,解決問題必須得仔細推敲其錯誤的提示。

ps:vba太強大了,一定要把excel 2007 programmer reference看完。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.