99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

VBA編程中Nothing、Empty、Null與Error的深度解析與實戰(zhàn)應(yīng)用

VBA編程中Nothing、Empty、Null與Error的深度解析與實戰(zhàn)應(yīng)用 1. 項目概述為什么VBA里的“空”這么讓人頭疼干了這么多年VBA開發(fā)我敢說至少有30%的調(diào)試時間都花在和“空值”較勁上。新手寫代碼最怕的就是彈出一個“運行時錯誤‘91’對象變量或With塊變量未設(shè)置”或者明明看著單元格是空的用If Range(“A1”) “”判斷卻死活不對。這背后就是VBA里那幾個看似簡單實則各有各的“脾氣”的空值關(guān)鍵字在作祟Nothing、Empty、Null還有那個經(jīng)常被誤會的Error。這些東西官方文檔講得比較分散和理論化而實際開發(fā)中它們的區(qū)別直接關(guān)系到程序是穩(wěn)定運行還是瞬間崩潰。比如你用Set了一個對象后來想釋放它是該用Set obj Nothing還是Set obj Empty從數(shù)據(jù)庫里讀出一個字段值是Null你直接把它賦值給一個變量后續(xù)計算會不會報錯一個函數(shù)可能因為各種原因失敗你是返回一個特定的Error值還是干脆讓程序彈窗報錯這些選擇每一天都在考驗著VBA開發(fā)者的基本功。今天我就結(jié)合自己踩過的無數(shù)個坑把這幾個概念掰開揉碎了講清楚。這不是語法教科書而是一份來自一線的“避坑指南”。無論你是剛接觸VBA想弄明白If rs.EOF Then和If rs Is Nothing Then到底有什么區(qū)別還是已經(jīng)寫了幾年代碼想更優(yōu)雅地處理各種邊界情況這篇文章里的內(nèi)容都能讓你少走彎路。我們會從它們最本質(zhì)的定義出發(fā)用大量實際的代碼片段和場景模擬讓你不僅知道每個關(guān)鍵字是什么更明白在什么情況下該用誰以及用錯了會怎么樣。2. 核心概念深度辨析四種“空”的本質(zhì)與差異理解這幾個關(guān)鍵字絕對不能死記硬背。你必須把它們放到VBA這個特定的“生態(tài)系統(tǒng)”里看它們各自扮演什么角色。我們可以從兩個最根本的維度來區(qū)分它們數(shù)據(jù)類型和適用場景。Nothing是給對象Object準(zhǔn)備的“空”Empty是給變體Variant變量在未賦值時的默認狀態(tài)Null是一個特殊的Variant子類型專門表示“未知數(shù)據(jù)”或“不含有效數(shù)據(jù)”而Error則是Variant的另一個子類型但它包裹的是一個錯誤號用于錯誤處理流程。2.1 Nothing對象的“身份證注銷”Nothing這個關(guān)鍵字是VBA中對象引用的專屬“空值”。你可以把它理解為一個對象變量的“復(fù)位鍵”。當(dāng)一個對象變量被聲明后例如Dim ws As Worksheet它實際上還沒有指向任何具體的對象這時它的值是Nothing。當(dāng)你用Set關(guān)鍵字讓它指向一個實際對象如Set ws ThisWorkbook.Worksheets(“Sheet1”)后它就不再是Nothing了。最后當(dāng)你不再需要這個對象或者想釋放它時你就用Set ws Nothing來切斷這個引用。注意Set ws Nothing并不意味著銷毀了那個Worksheet對象本身Excel還開著Sheet1當(dāng)然還在。它只是銷毀了ws這個變量對那個對象的“引用鏈接”。如果這是指向那個對象的最后一個引用VBA的垃圾回收機制會在后續(xù)某個時間點清理該對象占用的內(nèi)存。但對于Excel這類宿主應(yīng)用程序的對象其生命周期主要由宿主管理。核心判斷方法使用Is運算符。這是唯一正確判斷一個對象變量是否為Nothing的方法。Dim coll As Collection If coll Is Nothing Then MsgBox “變量coll尚未被Set為一個具體的Collection對象?!?End If Set coll New Collection ‘ 此時 coll Is Nothing 為 False Set coll Nothing ‘ 此時 coll Is Nothing 又變回 True最常見的坑試圖使用一個為Nothing的對象變量。這會導(dǎo)致“運行時錯誤‘91’”。Dim ws As Worksheet ‘ ... 假設(shè)忘記執(zhí)行 Set ws ... ws.Name “Test” ‘ 錯誤ws是Nothing沒有具體的對象可以操作。2.2 Empty變體變量的“出廠設(shè)置”Empty是變體Variant數(shù)據(jù)類型變量在聲明后、首次賦值前的默認值。它是一種特殊的Variant子類型vbEmpty。關(guān)鍵點在于Empty是一個值它表示“尚未初始化”而不是“沒有值”或“錯誤的值”。一旦你給一個Variant變量賦了任何值哪怕是0、空字符串””或Null它的Empty狀態(tài)就消失了。核心特性在數(shù)值上下文中為0在字符串上下文中為空字符串””。這是Empty最“狡猾”的地方它會在參與運算時自動進行類型轉(zhuǎn)換。Dim varValue As Variant ‘ 聲明后varValue 為 Empty Debug.Print varValue ‘ 立即窗口顯示“”空 Debug.Print varValue 10 ‘ 輸出 10 (Empty被當(dāng)作0) Debug.Print “Value: “ varValue ‘ 輸出 “Value: “ (Empty被當(dāng)作””) varValue “Hello” ‘ 現(xiàn)在 varValue 是字符串子類型vbString不再是Empty。如何判斷Empty使用IsEmpty()函數(shù)。Dim varTest As Variant If IsEmpty(varTest) Then ‘ 返回 True Debug.Print “變量是Empty” End If varTest Null If IsEmpty(varTest) Then ‘ 返回 FalseNull不是Empty。 Debug.Print “這行不會執(zhí)行” End If與空字符串””的區(qū)別這是另一個高頻混淆點。一個單元格被手動清空內(nèi)容按Delete鍵后其.Value屬性通常是Empty對于Variant類型Range.Value。而如果一個單元格輸入了一個等號公式但公式返回空字符串””那么其.Value就是空字符串””而不是Empty。用IsEmpty()函數(shù)可以清晰地區(qū)分它們。2.3 Null數(shù)據(jù)庫世界的“未知數(shù)”Null是一個Variant子類型vbNull它表示未知的、不存在的或不適用的數(shù)據(jù)。這個概念在數(shù)據(jù)庫領(lǐng)域至關(guān)重要。在VBA中Null主要出現(xiàn)在與數(shù)據(jù)庫如ADO、DAO記錄集交互時或者某些可能返回Null的API函數(shù)中。核心特性任何涉及Null的表達式結(jié)果都是Null傳播性。這是Null最需要警惕的特性也被稱為“Null的傳播”。Dim varNum As Variant varNum Null Debug.Print varNum 5 ‘ 輸出 Null Debug.Print “Text: “ varNum ‘ 輸出 Null Debug.Print varNum Null ‘ 輸出 Null (注意不是True) Debug.Print varNum Null ‘ 輸出 Null (也不是False)看到了嗎最后兩行是巨坑你不能直接用等號或不等號來判斷一個值是否為Null因為比較的結(jié)果本身也是Null在If語句中Null被視作False但這會導(dǎo)致邏輯混亂。如何判斷Null必須使用IsNull()函數(shù)。Dim varData As Variant varData Null If IsNull(varData) Then ‘ 正確返回 True Debug.Print “變量是Null” End If If varData Null Then ‘ 錯誤這個條件永遠無法被滿足結(jié)果為Null即False。 Debug.Print “這行永遠不會執(zhí)行” End If與Empty的對比Empty是VBA變量的初始狀態(tài)而Null通常表示從外部如數(shù)據(jù)庫獲取的、有意義的數(shù)據(jù)缺失狀態(tài)。IsEmpty(Null)返回FalseIsNull(Empty)也返回False它們是兩個完全不同的概念。2.4 Error不是錯誤的“錯誤值”Error是一個特殊的Variant子類型vbError它包含一個錯誤號。它并不是一個運行時錯誤不會中斷代碼執(zhí)行而是一個可以像普通值一樣存儲、傳遞的“錯誤標(biāo)識符”。它通常由某些函數(shù)在內(nèi)部出錯時返回而不是通過Err.Raise拋出異常。最常見的來源CVErr()函數(shù)。你可以用它將一個錯誤號轉(zhuǎn)換成一個Error值。Dim varResult As Variant varResult CVErr(11) ‘ 11 對應(yīng)錯誤“被零除” If IsError(varResult) Then ‘ 使用IsError()函數(shù)判斷 Debug.Print “變量包含一個錯誤值錯誤號是” CLng(varResult) End If核心用途在自定義函數(shù)中當(dāng)遇到特定計算錯誤如參數(shù)無效、除零時不直接彈出錯誤中斷用戶而是返回一個Error值讓調(diào)用者自己決定如何處理。Function SafeDivide(num1 As Double, num2 As Double) As Variant If num2 0 Then SafeDivide CVErr(11) ‘ 返回“被零除”錯誤值 Else SafeDivide num1 / num2 End If End Function Sub Test() Dim v As Variant v SafeDivide(10, 0) If IsError(v) Then MsgBox “計算出錯無法進行除法?!?Else MsgBox “結(jié)果是” v End If End Sub與運行時錯誤的區(qū)別Error值是一個“安靜”的錯誤指示器。而Err對象如Err.Number是在運行時錯誤發(fā)生并被捕獲后用于獲取錯誤信息的。你可以通過CVErr(Err.Number)將捕獲的錯誤轉(zhuǎn)換為Error值進行傳遞。3. 實戰(zhàn)場景與應(yīng)用技巧如何正確使用與判斷理論講完了我們進入實戰(zhàn)環(huán)節(jié)。知道它們是什么只是第一步更重要的是在代碼里用對地方。下面我通過幾個最常見的開發(fā)場景展示如何精準(zhǔn)地使用和判斷這些關(guān)鍵字。3.1 場景一安全地操作對象處理Nothing當(dāng)你編寫一個函數(shù)需要接收一個工作表對象作為參數(shù)時防御性編程至關(guān)重要。Sub ProcessWorksheet(ByRef ws As Worksheet) ‘ 第一步永遠先檢查對象是否為Nothing If ws Is Nothing Then MsgBox “未提供有效的工作表對象?!? vbExclamation Exit Sub End If ‘ 第二步進一步檢查對象是否“存活”對于某些可能已被刪除的對象 On Error Resume Next Dim nameTest As String nameTest ws.Name ‘ 嘗試訪問一個屬性如果對象無效會出錯 If Err.Number 0 Then MsgBox “工作表對象可能已被刪除或無效?!? vbCritical Exit Sub End If On Error GoTo 0 ‘ 安全地使用對象 ws.Range(“A1”).Value “處理開始” ‘ … 其他操作 … End Sub ‘ 調(diào)用示例 Sub Caller() Dim mySheet As Worksheet ‘ 情況1忘記Set ProcessWorksheet mySheet ‘ 將觸發(fā)“未提供有效對象”的提示 ‘ 情況2正常Set Set mySheet ThisWorkbook.Worksheets(“Sheet1”) ProcessWorksheet mySheet ‘ 正常執(zhí)行 ‘ 情況3Set為Nothing后 Set mySheet Nothing ProcessWorksheet mySheet ‘ 將觸發(fā)“未提供有效對象”的提示 End Sub實操心得對于任何可能來自外部輸入或動態(tài)生成的對象參數(shù)在函數(shù)內(nèi)部開頭進行Is Nothing檢查是一個必須養(yǎng)成的好習(xí)慣。這能避免90%以上的“錯誤91”。3.2 場景二處理單元格數(shù)據(jù)區(qū)分Empty、””、Null從Excel單元格讀取數(shù)據(jù)是VBA的日常。一個單元格可能包含多種“空”狀態(tài)。Sub CheckCellValue() Dim rng As Range Set rng ThisWorkbook.Worksheets(“Data”).Range(“A1”) Dim cellValue As Variant ‘ 必須用Variant接收因為.Value可能返回多種類型 cellValue rng.Value ‘ 判斷邏輯鏈順序很重要 If IsError(cellValue) Then ‘ 單元格是錯誤值如#N/A, #DIV/0! MsgBox “單元格包含錯誤” CStr(cellValue) ElseIf IsNull(cellValue) Then ‘ 通常來自數(shù)據(jù)庫查詢Excel單元格直接輸入Null的情況較少 MsgBox “單元格值為Null未知數(shù)據(jù)” ‘ 處理Null例如賦予默認值 cellValue 0 ElseIf IsEmpty(cellValue) Then ‘ 單元格從未被輸入過內(nèi)容真正的“空”單元格 MsgBox “單元格為Empty未初始化” ‘ 可以將其視為0或空字符串處理 cellValue “” ElseIf cellValue “” Then ‘ 單元格內(nèi)容是一個空字符串例如公式 ”” MsgBox “單元格是空字符串”” ‘ 按空字符串處理 Else ‘ 單元格有實際內(nèi)容數(shù)字、文本、日期等 MsgBox “單元格值為” cellValue End If End Sub注意事項判斷順序有講究。IsError應(yīng)該放在最前面因為一個Error值用IsNull或IsEmpty判斷也會返回False但它的本質(zhì)是錯誤。其次判斷IsNull再判斷IsEmpty。最后判斷空字符串””。因為一個Empty值在比較””時結(jié)果為TrueEmpty在字符串上下文中轉(zhuǎn)換為””所以如果你先判斷””就會把Empty也當(dāng)成空字符串從而無法區(qū)分兩者。3.3 場景三與數(shù)據(jù)庫交互Null的專項處理從ADO記錄集Recordset中讀取數(shù)據(jù)是Null出現(xiàn)的主戰(zhàn)場。Sub ReadFromDatabase() Dim conn As Object, rs As Object Dim employeeName As Variant, salary As Variant ‘ … 假設(shè)已建立連接并打開記錄集 … While Not rs.EOF ‘ 讀取字段值可能為Null employeeName rs.Fields(“Name”).Value salary rs.Fields(“Salary”).Value ‘ 處理可能為Null的字段 Dim displayName As String If IsNull(employeeName) Then displayName “[姓名未知]” Else displayName CStr(employeeName) End If Dim displaySalary As String If IsNull(salary) Then displaySalary “[薪資未錄入]” Else ‘ 注意即使不是Null也要小心類型可能數(shù)據(jù)庫中是DecimalVBA中最好用CDbl轉(zhuǎn)換 displaySalary Format(CDbl(salary), “#,##0.00”) End If Debug.Print displayName “: “ displaySalary rs.MoveNext Wend ‘ … 關(guān)閉記錄集和連接 … End Sub更安全的寫法使用Nz函數(shù)如果可用在Access VBA或某些庫中有一個非常方便的Nz()函數(shù)它可以將Null轉(zhuǎn)換為指定的默認值。在純Excel VBA中我們可以自己實現(xiàn)一個Function Nz(ByVal Value As Variant, Optional ByVal ValueIfNull As Variant “”) As Variant ‘ 模擬Access的Nz函數(shù) If IsNull(Value) Then Nz ValueIfNull Else Nz Value End If End Function ‘ 使用方式 salary Nz(rs.Fields(“Salary”).Value, 0) ‘ 如果為Null則返回0這個自定義的Nz函數(shù)能極大簡化代碼避免到處都是If IsNull(...) Then的判斷。3.4 場景四構(gòu)建健壯的自定義函數(shù)利用Error假設(shè)我們要寫一個查找函數(shù)當(dāng)找不到時不返回0或空字符串這可能與有效數(shù)據(jù)沖突而是返回一個錯誤值。Function VLookupSafe(lookupValue As Variant, tableRange As Range, colIndex As Long) As Variant ‘ 增強版的VLOOKUP找不到時返回錯誤值#N/A而不是報錯 On Error Resume Next ‘ 屏蔽VLOOKUP本身的錯誤 Dim result As Variant result Application.WorksheetFunction.VLookup(lookupValue, tableRange, colIndex, False) If Err.Number 0 Then ‘ 如果出錯通常是找不到清除錯誤返回CVErr(2042)對應(yīng)#N/A Err.Clear VLookupSafe CVErr(2042) Else VLookupSafe result End If On Error GoTo 0 End Function Sub TestLookup() Dim dataRange As Range Set dataRange ThisWorkbook.Worksheets(“LookupTable”).Range(“A:B”) Dim searchKey As String searchKey “SomeKey” Dim foundValue As Variant foundValue VLookupSafe(searchKey, dataRange, 2) If IsError(foundValue) Then If foundValue CVErr(2042) Then MsgBox “未找到關(guān)鍵字” searchKey Else MsgBox “查找過程中發(fā)生其他錯誤?!?End If Else MsgBox “找到的值為” foundValue End If End Sub技巧使用CVErr(2042)來模擬Excel內(nèi)置的#N/A錯誤這樣你的函數(shù)返回值可以與Excel原生函數(shù)的行為保持一致調(diào)用者也可以用IsError()和IsNA()在VBA中是WorksheetFunction.IsNA來統(tǒng)一處理。4. 混合場景與高級陷阱當(dāng)它們同時出現(xiàn)時真實的代碼往往更復(fù)雜這些“空值”可能會在同一個邏輯流里交織出現(xiàn)。處理不當(dāng)就會掉進深坑。4.1 陷阱一在集合或字典中查找可能為Null的鍵VBA的Scripting.Dictionary和Collection對象其鍵Key不能是Null。嘗試添加Null作為鍵會引發(fā)錯誤。Sub DictionaryWithNullKey() Dim dict As Object Set dict CreateObject(“Scripting.Dictionary”) Dim keyValue As Variant keyValue Null On Error Resume Next dict.Add keyValue, “SomeData” ‘ 這里會出錯 If Err.Number 0 Then Debug.Print “錯誤不能使用Null作為字典的鍵。” End If On Error GoTo 0 ‘ 解決方案在添加前轉(zhuǎn)換Null dict.Add Nz(keyValue, “[NULL]”), “SomeData” ‘ 使用之前定義的Nz函數(shù) End Sub教訓(xùn)任何要將值用作唯一標(biāo)識符如字典的鍵、集合的查找依據(jù)的場景都必須先對值進行“清洗”將Null轉(zhuǎn)換為一個唯一的占位符如字符串”[NULL]”。4.2 陷阱二將對象、Empty、Null傳遞給可選參數(shù)VBA支持可選參數(shù)Optional并且可以指定默認值。但這里有個細微差別。Sub TestOptionalParam(Optional ByVal param As Variant Empty) Debug.Print “參數(shù)類型” VarType(param) “, IsEmpty: “ IsEmpty(param) End Sub Sub Caller() TestOptionalParam ‘ 不傳參param將是真正的Empty TestOptionalParam Null ‘ 顯式傳入Nullparam將是Null不是Empty TestOptionalParam Nothing ‘ 傳入Nothingparam是一個包含Nothing的VariantVarType為9(vbObject) End Sub如果你在函數(shù)內(nèi)部期待一個Empty值作為“未提供參數(shù)”的標(biāo)志那么調(diào)用者顯式傳入Null就會破壞這個邏輯。更安全的做法是使用IsMissing關(guān)鍵字僅對Variant類型且未指定默認值的參數(shù)有效或定義一個特殊常量來標(biāo)識“未提供”。Sub SaferOptional(Optional ByVal param As Variant) If IsMissing(param) Then Debug.Print “參數(shù)未提供” ElseIf IsNull(param) Then Debug.Print “參數(shù)被顯式指定為Null” Else Debug.Print “參數(shù)值為” param End If End Sub4.3 陷阱三在數(shù)組和用戶自定義類型Type中數(shù)組元素和用戶自定義類型的字段其“空”狀態(tài)取決于它們的數(shù)據(jù)類型。Variant數(shù)組每個元素初始為Empty。對象數(shù)組每個元素初始為Nothing。數(shù)值/字符串?dāng)?shù)組每個元素初始為該類型的默認值0、””等。用戶自定義類型數(shù)值字段為0字符串字段為””對象字段為NothingVariant字段為Empty。這里沒有Null的默認位置除非你顯式賦值。但當(dāng)你從數(shù)據(jù)庫讀取一整條記錄到一個Variant數(shù)組時數(shù)據(jù)庫中的Null值會被保留到數(shù)組的對應(yīng)元素中。Sub ArrayWithNull() Dim dataFromDB As Variant ‘ 假設(shè)rs.GetRows返回的記錄集中有Null dataFromDB rs.GetRows Dim i As Long For i LBound(dataFromDB, 2) To UBound(dataFromDB, 2) If IsNull(dataFromDB(0, i)) Then ‘ 檢查第一列是否為Null ‘ 處理Null值 dataFromDB(0, i) “[NULL]” End If Next i End Sub5. 調(diào)試與排查如何快速定位“空值”相關(guān)錯誤當(dāng)程序因為空值問題崩潰或行為異常時如何快速定位以下是我常用的調(diào)試流程和技巧。5.1 錯誤“91”對象變量未設(shè)置這是最經(jīng)典的空值錯誤。排查步驟定位出錯行啟用“發(fā)生錯誤則中斷”的調(diào)試模式VBE中工具 - 選項 - 通用 - 錯誤捕獲 - 遇到未處理的錯誤時中斷。檢查對象變量將鼠標(biāo)懸停在出錯行涉及的所有對象變量上查看提示是否為“Nothing”?;厮葙x值路徑檢查該對象變量在何處被Set。常見原因?qū)ο髣?chuàng)建失敗如Set ws Worksheets(“不存在的表”)。對象已被釋放或關(guān)閉如記錄集rs在調(diào)用.Close后未置為Nothing但后續(xù)又誤用。邏輯分支遺漏在If或Select Case的某個分支里忘記Set對象。使用立即窗口在中斷模式下在立即窗口輸入?objVar Is Nothing來快速驗證。5.2 邏輯錯誤判斷條件失效程序沒報錯但結(jié)果不對往往是Null或Empty的判斷邏輯出了問題。‘ 有問題的代碼 If rs.Fields(“Amount”).Value 0 Then ‘ 如果Amount字段在數(shù)據(jù)庫中是Null這個條件會得到Null在If中相當(dāng)于False導(dǎo)致邏輯跳過。 ‘ 本意是想排除0值結(jié)果連Null也排除了。 End If ‘ 正確的代碼 Dim amountVal As Variant amountVal rs.Fields(“Amount”).Value If Not IsNull(amountVal) Then If amountVal 0 Then ‘ … 處理非零且非Null的值 … End If End If調(diào)試技巧在懷疑的判斷語句前使用Debug.Print輸出關(guān)鍵變量的值和類型。Debug.Print “amountVal: “; amountVal; “, Type: “; VarType(amountVal); “, IsNull: “; IsNull(amountVal)VarType函數(shù)會返回一個數(shù)字如0表示Empty1表示Null8表示字符串等等這是判斷變量當(dāng)前子類型最直接的方法。5.3 數(shù)據(jù)傳遞錯誤函數(shù)返回值異常自定義函數(shù)返回了意想不到的Empty、Null或Error。檢查所有退出路徑確保函數(shù)在所有可能的邏輯分支包括If...Else、Select Case、錯誤處理Exit Function中都對返回值進行了賦值。初始化返回值在函數(shù)開頭將返回變量設(shè)為一個明確的初始值如0、””或Empty這是一個好習(xí)慣。使用類型更嚴(yán)格的返回值如果函數(shù)邏輯上不可能返回Null或Error考慮將返回類型聲明為具體的類型如Double、String而不是Variant。這樣VBA會在返回時進行類型檢查有時能提前發(fā)現(xiàn)問題。但要注意如果函數(shù)內(nèi)部計算可能產(chǎn)生Null賦給一個String變量會導(dǎo)致類型不匹配錯誤。6. 性能與最佳實踐寫出更健壯的代碼理解了概念避開了陷阱最后我們聊聊如何從代碼設(shè)計和習(xí)慣上根本性地減少空值帶來的煩惱。6.1 變量聲明與初始化策略對象變量聲明時即為Nothing。在使用前養(yǎng)成先判斷再使用的習(xí)慣。對于可能為Nothing的傳入?yún)?shù)在過程開頭進行防御性檢查。Variant變量如果用于接收可能為Null或Empty的外部數(shù)據(jù)如單元格值、數(shù)據(jù)庫字段保持為Variant類型。如果用于內(nèi)部計算應(yīng)盡早轉(zhuǎn)換為具體類型并處理空值。‘ 好的做法 Dim rawInput As Variant rawInput Range(“A1”).Value Dim processedValue As Double If IsNumeric(rawInput) Then ‘ IsNumeric對Empty返回True視為0對Null返回False processedValue CDbl(rawInput) Else processedValue 0 ‘ 或根據(jù)業(yè)務(wù)邏輯處理 End If ‘ 后續(xù)計算全部使用processedValue它是確定性的Double類型。具體類型變量String, Long, Double等它們沒有Empty或Null狀態(tài)。如果你嘗試將Null賦給它們會得到“無效使用Null”的錯誤。因此從可能為Null的源如數(shù)據(jù)庫賦值時必須用IsNull保護。6.2 函數(shù)與API設(shè)計建議明確契約在函數(shù)注釋中清晰說明參數(shù)是否可以接受Nothing/Null/Empty以及返回值在何種情況下會是這些特殊值。優(yōu)先返回具體類型如果可能讓函數(shù)返回具體類型而非Variant。調(diào)用者無需擔(dān)心Null或Error。如果確實需要表示“未找到”或“錯誤”可以考慮其他模式返回一個布爾值表示成功/失敗并通過ByRef參數(shù)返回結(jié)果。返回一個自定義的包含狀態(tài)和結(jié)果的類實例。錯誤處理對于不可恢復(fù)的錯誤使用Err.Raise主動拋出錯誤。對于可預(yù)見的、作為正常業(yè)務(wù)邏輯一部分的“未找到”等情況返回一個特定的Error值如CVErr(2042)或一個特殊常量如vbNullString比返回Null或Empty更明確因為后兩者的含義可能模糊。6.3 代碼可讀性技巧使用有意義的常量或函數(shù)包裝不要到處寫If IsNull(...)。可以定義像之前Nz()那樣的工具函數(shù)或者定義模塊級常量。Public Const NOT_FOUND As String “#NOT_FOUND#” Function GetEmployeeName(ByVal id As Long) As String ‘ … 查找邏輯 … If Not Found Then GetEmployeeName NOT_FOUND Else GetEmployeeName nameFromDB End If End Function注釋說明特殊值對于可能返回Null或特定Error值的函數(shù)在函數(shù)頭部用注釋明確說明。‘ 函數(shù)CalculateBonus ‘ 參數(shù)sales – 銷售額Double類型 ‘ 返回值Variant。成功時返回獎金數(shù)額(Double) ‘ 如果銷售額為負數(shù)返回CVErr(2023)自定義錯誤表示無效輸入 ‘ 如果計算過程出現(xiàn)除零錯誤返回CVErr(11)。處理Nothing、Empty、Null和Error本質(zhì)上是在處理程序的“邊界情況”和“異常狀態(tài)”。把這些情況考慮周全你的VBA代碼的健壯性和可維護性會提升一個巨大的檔次。剛開始可能會覺得繁瑣但一旦形成肌肉記憶寫出穩(wěn)定可靠的代碼就是水到渠成的事。最關(guān)鍵的是不要再只用If var “”來判斷所有“空”了根據(jù)場景該用Is Nothing、IsEmpty還是IsNull心里得有桿秤。下次再遇到詭異的bug不妨先想想是不是哪個“空”在跟你玩捉迷藏。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
夜色爱爱亚洲| 亚洲激情五月天| 东北熟女视频99| 久操人妻| 被强行糟蹋的女人A片| 色色色色热热| 性生生活大片又黄又| 五月丁香怕啪啪| 婷婷激情综合网| 97色色色| 亚洲精品国产熟女久久久| 深爱 五月天| 国产真实乱了老女人视频| 婷婷久久六月天| 99精品偷自拍| 伊人久久婷婷| 丁香六月激情综合| 激情 五月 婷婷 丁香| 国产AV一区二区三区日韩| 五月色亚洲| 五月六月播婷婷| 少妇被下春药玩弄A片| 婷婷五月丁香手机在线视频| 操人91| 久久视频婷婷视频| 六月亭亭久久综合激情| 天天干天天操天天拍| 九九中文字幕九| 日韩在线观看亚洲| 夜夜做天天爽| 久久久18| 操操操操操操婷婷五月天| 亚洲精品字幕在线观看| 亚洲婷婷基地| 婷婷丁香五月天在线| 操比激情五月| 爱久久小说下载网| 国产亚洲成AV人片在线观黄桃| 综合99综合久久久久久久| 婷婷爱在线观看| 丁香六月婷婷综合欧美| 艳妇野外情欲放荡HD| 国产91视频| 五月丁香网站| www.99热这里精品| 婷婷欧美| 99婷婷| 另类国产综合| .操區COm| 伊人婷婷激情| 亚洲狠狠干| 青青热视频| 手机在线日韩视频中文字幕| 五月天婷婷激情网| 婷婷五月天亚洲综合网| 免费看欧美成人A片无码| 色色色.COM| 午夜激情综合| 丁香九月综合激情| 人人澡天天色天天做| 亚洲AV日韩无码| 91精品婷婷国产综合| 99热在线观看成人| 天堂伊人干| 日本色99| 国产又粗又大又爽又黄| 超碰免费观看| 99热精品观看| 伊人丁香五月| 欧美成人热| 狠狠色丁香久久| 国产午夜成人免费看片无遮挡| 蜜桃成语时李时珍 免费| 欧美人妻一区二区| 免费日本aⅴ中文字幕| 天天爽天天操| 免费观看全黄做爰的视频 | 先锋资源996| 一區四區歐美日韓| 男人天堂亚洲综合| 婷婷丁香五另类网站| 亚洲午夜视频| 五月丁香色婷婷基地| 五月婷婷深爱六月| 操日本人妻视频| 激情五月丁香五月| 这里只有九九精品| 亚洲日日日| 91婷婷色 | 亚洲AV色婷婷人禽五月天| 2025色婷婷| 免费观看大片视频 丁香婷婷 六月欧美| 五月丁香 啪啪啪| 久久婷婷激情视频| 五月丁香成人网| www一起操在线观看| 9久久精品视频| 99操不停| 色色色在线免费视频| 九九综合视频在线观看| 五月激情婷婷国产精品久久久久久| 成人丁香婷婷五月天| 无套内射极品大美女| 激情六月丁香| 五月婷婷六月天| 99综合免费视频| 91色吧网| av首页在线| 亚洲电影中文字幕| 97人人看| 夜夜夜夜夜骑撸| 五月婷婷天天| 色色图五月天| 碰97 久| 婷婷色五月婷婷姐妹| 九色 在线| 婷婷基地成人五月天| 婷婷丁香五月天在线| 99ri国产在线| 99久精品| 色五月色情| 9久久精品| 91精品综合久久久久久五月丁香| www.丁香黄色五月天人与| 国产女生爱爱AA| 日本99在线| 夜夜嗨一区二区三区直播内容 | 美日韩成人| 欧美日韩成人在线| 色狠狠婷婷| 91人在线观看| 一二三区视频韩国| 秋霞少妇AV网站| 日本天堂网站99| 99色这里| 公的粗大挺进了我的密道| 97热精品| 男女99免费视频| 91操碰| 性生生活大片又黄又| 秋霞性爱AV| z色五月播播久久| 婷婷丁香六月天激情四射网| 可以看的AV| 4438亚洲欧美| 99热这里只要精品免费| 天天综合色丁香| 五月综合六月丁| 能看的av| 婷婷丁香综合| 综合久久五| 成人丁香色| 久久激情五月| 欧美三级大片AA在线看| 5月丁香啪啪啪| 色婷视频| 全高清无码视頻| 伊人五月久久| 日美三级| 九九99在线免费在线观看视频| 五月婷婷日| 另类图片五月天婷婷| 泰州成人视频| 五月开心婷婷极品激情| 免费看成人AA片无码视频吃奶| 丁香婷婷五月天校园春色| 五月天综合网| 欧美激情综合| 色99综合色88| 婷婷 丁香 精品| 9 99免费视频| 99九九久久| 婷婷六月丁香开心深深爱| 婷婷五月天堂| A网在线欧洲| 日韩 mm 不卡| 成人va视频| 丁香五月激情网| 成人av在线网站| 亚洲综合网区| 碰超在线九色| 色婷婷国产精品综合在线观看| www.91在线观看| 亚洲这里只有精品| 停停五月天激情网 | 4399在线观看免费高清黄色视频| 五月天久久婷婷| 一本久久亚洲五月婷婷| 久久婷综合网| 日韩黄色中文字幕| 亚洲操逼网| 99成人网站| 久婷狼色诱惑在线| 亚洲99热| 五月激情久久| www.色婷婷。com| Caoub青青超碰| 性高潮久久久久久-九九九九九九九九九九热-成人AV| 五月天激情四射网站| 五月天丁香| 五月丁香六月情| 六月丁香婷婷视频综合在线观看| 黄色成人AV在线| 中文字幕在线资源| 色色AV色色色东莞| 五月婷婷这里都是精品| 啊V视频在线观看| 色婷婷天堂| 日本精品在线噜噜噜| 五月天开心色色网| 超碰在线综合| 天天噜天天爱| 五月天婷婷色在线视频免费观看| 婷婷99丁香| 色综合色| 高清视频一区| 精品少妇蜜臀91| 2015超碰| 丁香五月 无码| 六月丁香啪啪| 人人九色| 中文字幕丰满人妻无码专区| www色综合| 天天色月| 欧美99| 色九综合| 黄色AAAAAAA| 极品少妇XXXX精品少妇偷拍| 日韩无码色色| 日韩欧美一级大黄网站| 婷色五月天| 久久99热 这里有精品| 无码碰碰| 免费看欧美成人A片无码| 99亚洲视频| 成人综合视频网址| 青草视频在线播放| 日日日日日| 丁香婷婷网| 熟女激情五月天| 99视频精品8| 无码九九| 婷婷黄色五月天在线视频| 色婷婷久久| 九色激情网| 九九热99在线视频| 九九九九无码| www.com.色色| 中文字幕日韩成人| 色丁香婷婷| 成人丁香五月婷| 国产av网| ztEJj| 青青草国产亚洲精品久久| 五月伊人婷婷| 五月天婷婷基地| 久久婷婷综合五月趴| 亚洲丁香五月在线观看| 99精在线| 91黄操| 婷婷丁香色无五月| 天天日天天操心| 激情五月丁香亭亭| 生活片五区| 九九综合| 国产精品国产成人国产三级| 怎么样可以看免费的一级av| 丁香五夜激情四射夜夜夜| 色色丁香色五月| 久热精彩视频98| 9|在线观看视频| 成人在线免费网址| 伊人久久婷| 五月丁香琪琪| 五月丁香啪啪激情| 开心网五月色婷婷| 丁香婷婷深情五月亚洲| 婷婷色五月大香蕉在线| 久久区区一二三av| 五月丁香激情综合| 亚洲尤物在线| 色播播五月天| 久久99热这里| 天天爽综合网| www.99色| 蒲京久久无码视频| 五月婷亚洲精品AV天堂| 森林影视大全,最好看的2019年视频| 色婷激情网| 五月丁香亚洲婷婷| 五月丁香中文| 日韩aaaaa| AA片在线观看视频在线播放 | 亚洲、热| 四虎成人精品永久免费AV九九| 国产亚洲在线| 久久电影五月天丁香电影| 伊人九九综合| 6月丁香婷婷激情| 久久婷婷五月综合色和| 夜夜爽天天爽| 国产精品第一国产精品| 人妻激情网| 亚洲中文字幕av| 亚洲色婷婷99一9|| 欧美在线97| 99久久国产宗和精品1上映| 第九色区AV在线| 黄色片精品| 国产精品色色666| http://www.sd-xiangsu.com/| 超碰成人在线观看| 丁香五月激情啪啪啪| 欧洲不卡视频| 天天干天天干天天干天天干天天干| 九九成人精品免费视频| 激情五月天激情小说| 久久久久9| 4399无码视频| 99er6免费视频热播| 久久人妻www| 日本久久天堂| av首页在线| 婷婷色播婷婷| 国产97色在线 | 日韩| 国产精品人成A片一区二区| 欧美亚洲成人在线| 99er热精品视频| www狠狠| 五月丁香婷婷婷激情爱爱| 婷婷丁香六月影视| 婷婷五月激情丁香| 乱码操操| 九九热在线观看视频网站| 久碰婷婷视频| 综合网狠狠| 久99久热只有精品国产99| 色999五月色| 丁香青青五月天| 婷婷5月天激情综合| 五月久久婷婷丁香| 欧美丁香五月97色| 激情床戏| 久久久人妻不卡| 超碰97免费在线| 99re8热精品免费视频| 婷婷丁香六月五月天| 日本色色网站| 日本一级| 色色AV色色色东莞| 五月丁香综合网| 噼里啪啦完整版中文在线观看| 久9热视频在线观看| www一区二区三区| 极品人妻VIDEOSSS人妻| 亚洲五月综合色播| 午夜在线成人网站免费观看| 五月丁香龟婷婷| 丁香婷婷九月| 大香蕉综合| 欧美大道不卡| 99操碰| 日本久久婷| 六月丁香色色| 日韩成人免费电影| 色婷婷丁香五月天在线视频 | 五月综合激情网| 久久欧洲久久| 欧美日韩二区在线| 色婷婷丁香香香蕉视频| 91 九色 入口| 五月天成人小说| 婷婷在线播放av| 激情丁香婷婷| 色人五月婷婷| 婷婷五月日本| 影视av久久久噜噜噜噜噜三级| 99九无网码| 色婷婷综合视频| 国产精品久久99| 青青草成人网| 天天天摸夜夜夜玩| 青青青在线视频国产| 天天草天天舔| 久久天堂婷婷五月| 日本99热| 丁香六月天之亚州热女| 97五月天婷婷综合激情网| 五月天综合网| 中文字幕+乱码+中文字幕在线观看| 天天爽夜夜操| 99热这里是精品| 九九九九毛片| 五月婷婷丁香日韩在线| 久久婷网| 精品99网站| 怡红院成人AV| 丁香五月性爱| 天天日天天插| 五月花成人网| 97自拍99| 欧美私人家庭影院| 丁香激情网| 99色色热| 久久人操-久草婷婷-成人AV| 久久婷婷亚洲| 天天干一干| 色色色在线免费视频| 日日夜夜九九| 99精品视频免费观看| www.日日夜夜| 97av在线视频| 日韩有码一区| 少妇AB又爽又紧无码网站| 色综合久久88色综合天天99| 综合网激情五月天| AV在线大香蕉| 欧美123区免| 婷婷色亚洲| 国产毛片操B| 五月婷婷久久久| 色情五月天婷婷| 超碰97干| 午夜日日| 丁J香六月首页| 丁香五月欧美| 夜夜资源站| 天天操天天日天天操| 丁香啪啪| 日本美女上人| 色婷婷综合电影| 最近中文字幕在线中文视频| 99这里只有| 操骚货在线| 天天射射夜| 五月天综合久久| 操逼视频网址| 色五月婷婷777| 亚洲九区| 色五月在线观看| 天天天天天天操| 亚洲日韩26uuu| 婷婷五月电影院| www热久久yy9| yazhochengrenavwang| 无码激情AAAAA片-区区| 天天做天天爱天天爽| 久色网址| 99久久婷婷| 99国产精品久久久久久久久久久| 五月婷婷综合丁香视频| 五月六月婷| 亚洲色婷婷五月| 六月婷伊人| 天天日日天天| 襙逼网| 五月停停直播| 五月色无码| 精品无码色| 久久婷婷激情五月天一区二区| 色一情一乱一乱一区91| 五月婷久久| 狼人狠狠操| 98永久精品| 一区二区三区XXXXXX| 中文字幕丰满乱孑伦无码专区| 日韩欧美四五区| 99热永久在线观看| 色婷五月天亚洲| 婷婷天天插天天爱| www,五月丁,com| 五月婷婷就去色| 激情六月五月婷婷综合网| 99热色无码| 伊人五月婷婷国产视频| 99超级碰碰| 情色五月天网站| 在线中文字幕视频| 六月婷婷视频| 激情五月四色| 五月天激情四射网站| 日本系列_4页_777FP| 射区导航| 色色操| 亚洲六月色| 先锋影音男人的天堂AV| 亚洲顶级VA在线观看-高清完整版在线影院观看-S022AV | 在线不卡视频| 久久久久久久久久久jjjj| 激情五月天情色| 日韩三及成人AV片| 五月丁香六月婷婷综合在线| 色五月婷婷丁香婷婷| 久久综合激情婷婷激情| 99九九中文字幕视频| 97色女人在线| 天天做天天爱天天爽夜夜揉| 日本激情五月天‘| 日韩成人无码人妻| 久久小说网| 九月婷婷综合色干| 婷婷色导航| 五月社区婷婷激情| 五月色婷婷综合| 色玖玖综合网| 久久在线人妻| 在线观看免费狠狠色丁香香综合| 五月婷婷婷| 色婷婷av综合网| 婷婷六月综合| 婷婷五月免费在线| 99热亚洲| 99网址在线观看| 中文字幕,综合,91| 99热这里只有精品21| 婷婷色五月色| www.天天干| 婷婷伊人视婷婷婷| 色婷婷玖玖影院| 91狠狠色丁香婷婷综合久久精品| 婷婷金品综合视频| 99精品无码| 亚州婷婷五月激情综合| 最新亚洲色色网| 國語久久婷| 国产精品电| 超碰免费人妻| 五月丁香色婷婷| 国产婷婷色综合AV蜜臀AV| 99热国产婷婷| 色五月六月婷婷| www久| 高清av在线国产| 综合欧美五月婷婷| 97人凄人人操人人爽| 又大又粗九一在线| 五月婷六月综合在线观看| 色五月天电影| 1024人妻无码中文字幕| 五月丁香婷婷久久| 另类小说五月天| 激情图片久久| 婷婷五月丁香在线视频| 综合久久丁丁香婷| 99视频精品视频| 激情综合网址| 五月激情网站| www.色婷婷.com| 久久久久久久久久久久久久久久久精典| XXXX岛国| 婷婷五月激情丁香| jiujiu热在线视频| 久久资源网五月婷| 久久久ww| 在线观看欧美| 天堂久久婷婷| 五月丁香婷草| 丁香五月AV| 激情六月色| 九月性爱网| 思思热久久爱| 色吧五月婷婷| 在线亚洲综合网| 九九九九九九九热| 六月婷婷综合网2| 狠狠干总合| 五月婷婷无码| 六月丁香深深爱| 能看的av| 亚洲婷婷六月天| 国产XXXX搡XXXXX搡麻豆| 色之综合网| 五月婷婷色五月| 亚洲sesesese| 欧美成人精品A片免费一区99| 天天做综合| 96丁香六月婷婷蜜桃综合久久| 婷婷大香蕉| 久久丁香五月| 狠狠色无码| 91男人操女人视频| 婷婷五月成人系列| 五月丁香婷婷成人版| 亚洲va成人va成人va在线观看| 色婷婷狠狠久久YY| 六月丁香婷| 五月丁香六月婷婷啪啪综合 | 97干视频| 99色色网站| 中文字幕按摩做爰| 亚洲夜夜操| 亚洲天堂无码| 天天综合网在线| 激情美女五月天| 国外亚洲成AV人片在线观看| 99在线亚洲| 玖玖五月| 五月综合视频| www色五月| 97干欧美| 9色91视频| 丁香五月五月婷婷| 99色6爱9热| 色五月婷婷久久大| 丁香五月停停基地| 91丨九色丨东北熟女| 激情都市五月天| 亚州第一A片| 99热超碰| 五月丁香黄色视频| 99精品自拍视频| 久久久99精品免费观看| 久热这里| 97婷婷丁香五月天激情图片| 欧美三级视频下载| 久久五月婷| 色婷五月天激情| 成人视屏在线观看| 31色区视频免费看| 五月激情天| 天天婷婷色六月| 国产亚洲在线观看| 99久久色| 日本不卡一区二区三区| 超碰免费99| 婷婷六月伊人| 99丁香五月婷| 五月激情网站| 9色小视频在线观看| 天天干 夜夜爽| 免费不卡狠操美女视频网 | 超碰爱爱爱| 噼里啪啦完整版中文在线观看| 久久久婷婷五月亚洲97号色| 亚洲经典小视频| 男人大jjc女人免费视频| 亚洲99综合| www.夜夜.com| 亚洲女婷婷五月基地综合久久久| 色婷婷操逼| 久久日韩婷婷五月| 色色9 9| 99免费在线视频| 久久丁香五月| 五月丁香六月综合激情| 性生活久久朋友人妻| 婷婷的激情五月| 免费啪啪亚州视频| 午夜日日| 成人在线高清| 亚州第一A片| 久久婷婷超碰| AV片一区在线观看| AA片在线观看视频在线播放| 中文字幕黄色片| www.色综合| 日韩欧美成人片| 久久婷婷成人综合色怡春院| 天天操屄网| 欧美久久婷婷| 婷婷五月色丁香在线看| 色婷婷九月| 综合激情在线| 香蕉国产2013| 99精品久久| 五月丁香久久网| 久久99精品久久久久久噜噜| 日本一毛片| 五月天婷婷免费| 日本97久久久精品| 一级二级色大片| 干一干xxxx| 日韩在线观看亚洲| 久久伦乱| 欧美日韩99| 日韩成人免费电影| 91九色丨国产丨爆乳| 超碰电影在线播放| 98色花堂98t.R| 91玖玖| AV在线观看网站| 日韩欧美一级大黄网站| 亚洲永久免费| 色综合天天网| 五月天婷婷成人网| 亚洲第一综合| 国产日韩欧美| 人妻有码乱操| www.91AV.com| 久久精品综合色| 久久99网址| 另类精品视频在线观看| 婷婷四月 成人 狠狠干| 九九九九九无码| 五月天激情无码高清| 天天干天天干天天干天天干天天干天天干天天 | 五月丁香狠狠地噜噜噜噜| 日日操,夜夜爽| 亚洲成人五月天| 99网| 在线播放成人网站| 亚洲日韩成人三级av| 草榴视频黄色网| 激情久久网 | 久久最新色| 久久久精品人妻| 五月丁香在线| 欧美色必爱| 欧美色宗和激情| 午夜大香蕉| 丁香五月第四色88| 丁香婷婷激情五月天无毒不卡蜜桃| 97精品欧美91久久久久久久| 国产精产国品一二三在观看| 怡红院成人AV| 亚州精品色情无码A片| 蜜臀av在线成人电影| 婷婷丁香五月亚洲| 色婷婷av在线观看| 五月久久丁香| 婷婷色啪| 狠狠狠狠狠操| 九九干视频| 九九视频在线观看视频6| 综合精品啪啪| 久久五月丁香伊人青草| 激情五月天色婷婷| 人人爱人人草| 五月天综合色| 久久99热免费| 五月天色五月| 97啪在线观看视频| 色综合色五月| 色五月综合在线| 五月丁香| 五月亭亭欧美女人| 五月婷婷开心色伊人| 亚洲 激情 中文| 久久WW| 极品人妻VIDEOSSS人妻| 婷婷色五月丁香六月欧美啪| 五月丁香基地| 99在线精品免费视频| 激情婷婷综合网| 五月丁香直播| 91天天操天天干天天射| 六月色婷婷综合影视| 婷婷 激情 五月| 色五月天电影| 九九综舍久久| 婷婷五月色情天| 婷婷丁香六月| 激情无码五月天| www.五月丁香| 日韩成人电影av| 手机AVAV天堂看网| 日本三级韩三级99久久| 久久久婷婷五月亚洲97号色| 欧美一级操逼视频| 丰满少妇猛烈A片免费看观看| 伊人久久99| 五月丁香婷婷免费视频| 亭亭丁香97| 五月色婷婷激情| 久久机热/这里只有精品| 丁香色影院| tingtingzonghewang| 99这里只有精品|v| 五月天婷婷狂暴白浆| 丁香激情合作五月| 99热精品在线| 乱女乱妇熟女熟妇综合网站| 成人一级片| www999日韩精品| nvrentiantang av| 五月婷婷草| 激情五月天伊人影院| www.久久色.com| 久久久久久五月天| 久久综合9| 综合深爱五月| 日噜噜色| 五月婷婷综合在线视频小说| 任你干线上免费视频有3吗| 蜜桃婷婷丁香| 丁香五月婷婷影视先锋| 美女婷婷六月色| 99网| 丁香五月老师| 91狼友视频网页更新| 色婷婷色情| 182.t午在线观看| 99精品在线下载| 97人人操人人拍| 五月天另类图片| 涩涩激情五月婷婷| 六月丁香婷婷尤物| 五月婷婷亚洲综合在线 | 婷婷丁香综合| 久久婷婷91| 97av在线视频| 人妻久久久| 九热视频这里只有精品| 丁香五月激情综合久久| 婷婷久久色| 婷婷操婷婷干婷婷射| 激情人妻综合| 亚洲永久四色| 五月婷婷色丁香| 精品日本视频444| 深爱综合网| 一区二区免费看| 99热这里有精品| 精品婷婷五月天| WWW.五月com| 成人在线日韩欧美| 五月丁了香蕉综合| 91大屁股在线| 亚洲精品国产setv| 天天综合激情| 9|人妻人人操| 婷婷五月天丁香社区| 欧洲婷婷五月天| 九九色网专区| 色婷婷大香蕉| 狠狠搞综合色| 六月丁香色色色| 国产毛片欧美毛片久久久| 亚洲五月天婷婷综合| www99在线观看视频| 99热思思| 五月丁香六月| 天天做天天双| 丁香婷婷九月| 亚洲第一成人无码A片| 五月精品| 激情网站综合五月天| 五月婷婷|欧美| 六月丁香啪啪| 99热综合| 日韩AAA| 91爱啪啪| 狠狠色婷| 激情开心五月天| 丁婷婷五月天在线播放| 天天综合亚洲综合网天天αⅴ| ww超碰在线| 色婷婷色99国产综合精品| 婷婷情爱五月天6| WWW.激情| 五月天综合久久| 欧美在线ee日韩| 亚洲激情网| 日日色综合| 狠狠做五月婷婷| 午夜亚洲国产精品av一区二区| 婷色天堂| 日韩成人免费电影| 99视频九九热| 色XX综合网| 色五月天中文字幕| 翔田千里 50岁 无码| 情欲禁地| 久久九九网| 久久99综合网| 五月丁香六月婷婷网| 五月天激情婷婷五月天久久| 婷婷视频网| 婷婷久久性爱| 91九色无码内射| 亚洲中文字幕翔田千里| www.婷婷五月天| 99激情视频| 婷婷五月综合色拍| 狠狠草在线观看| 激情激情激情网| 天干干夜夜操| 六月丁香成人| 97在线/日本| 久久蜜臀婷婷| 色婷婷yy久| 精品AV无码超碰| 韩日另类| 美国少妇性做爰| 中文字幕成人| 99视频内射三四| 九九热欧美| 99啪啪视频| av在线免费网站| 狠狠色丁香婷婷久久综合| 五月天播播中文字幕 | 婷婷成人五月天| 色色a| 99在线观看| 亚洲免费婷婷| 九九热在线视频| 欧美va在线| 色爱综合网| 欧美日韩成人| 狠狠色色| 大香蕉啪啪啪| 亚洲免费看片| 激情第四色| 日韩在线看AV| 婷婷五月,综合伊人| 久久人人添人人爽添人人片αV| 五月丁香综合激情| 婷婷深爱五月天| 五月婷婷综合网| 国产成人精品一区二三区熟女在线| 国产成人精品亚洲线观看| 激情五月天色色| .青娱乐天天操B| 天久综合91综合首页| 婷婷丁香婷婷97| 综合爱久久| 激情婷婷丁香五月天| 综合五月草| 五月婷成人网| 丁香六月成人| 91无码高清| 婷婷五月天伊人| 极品少妇XXXX精品少妇偷拍| 婷婷五月天 丁香五月天 裸体| 久久九九囯产| 九九色色色| 人妻久久久久久久久妻久久久久久久久| 激情五月开心五月在线视频| 久久99色色| 丁香五月亚综合图片| 另类A片| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 日韩欧美婷婷丁| 黄色一级影片| 久久在这里有精品| 五月成人网站| 激情綜合W W W,激情五月天| 婷婷色在线| 六月婷婷AV| 天天干,天天舔| 五月噜噜| 99久久这里只有精品免费官网| 色色婷婷综合网| 色播婷婷大香蕉| 九九色热| 五月婷婷导航| 亚洲成人色五月天| 日韩aaaaa| 国色天香成人网| 丁香婷婷婷五月综合色情| 天天干,天天舔| 色人妻五月| 99热这里只有精品3| 人人操婷婷| 久久五月视频| Www.狠狠| 久久免费精彩视频| 色婷婷女优有码五月亭| 人人舔人人色人人高潮| 色情五月综合婷婷| 成人精品视频99在线观看免费| 四色五月视频| 五月天婷婷丁香花| 色久五月天| 六月丁丁香| 最新av在线观看| 五月丁香激情在线| 狠狠狠狠狠狠| 影音先锋91男人资源在线播放| 婷婷久久午夜网| 影音先锋偷偷色男人站| 俺去也婷婷| 激情综合网五月丁香| 99久久精品视频女神1| 亚洲五月婷婷| 99A级片| 五月综合精品| 538在线精品| 久久人人超| 伊人激情影院| 欧美在线ee日韩| 人人人操Av| 91精品婷婷国产综合久久| 99爱在线| 九九热在线观看视频网站| 99免费在线视频| pom538精品视频| 色色射| 丁香综合日产精品久久| 婷婷丁香五月天综合网| 另类小说五月天| 久久这里都是精品| 人操91在线| caopeng97日韩| 激情第四色| 婷婷激情五月天天天开心| 99在线视频播放| 99热天堂| 综合成人小说婷婷| 国产精品岛国片在线观看免费| 97婷婷五月天| 成人草榴视频| 婷婷播播五月天| www.狠狠| 丁香五月激情婷婷| 9色在线| 欧美在线看| 日韩人妻在线观看| www999日韩精品| 噜噜狠狠色综合久| 五月婷婷成人| 激情五月婷婷在线观看| 色五月大| www.五月婷婷久久.com| 91丨九色丨熟女丰满| 色综合久久99色| 久久99精品久久久久久三级| 激情五月婷婷五月丁香五月开心五月| 久久激情婷婷| 五月丁香操亭亭网| 丁香六月婷婷社区| 超碰国产在线观看| 国产精品人妻在线网址| 欧美色97| 狠狠草网| 欧美大香蕉视频| 狠狠舔| 97在线观视频免费观看| 婷婷久久视频| 五月婷婷综合天天操| 99亚洲精品视频| 久久婷婷综合拍| 亚洲AV成人片无码网站| 五月丁香六月婷婷啪啪| 午夜五月天| 亚州激情在线视频| 丁香五月在线观看| 欧美婷婷五月无砖| 激情av| 丁香六月 人妻| Caoporn公开| 女人被男人吃奶到高潮| 激情色色| 成人国产欧美大片一区| 无月播播激情在线观看视频| 1024亚洲| 五月丁香六月欧美综合网站| 影音先锋女人av鲁色资源网小说免费| 国产精品久久久久久喷浆| 激情五月天www| 欧美色色干| 五月婷婷久久综合| 狠狠干青青草| 超碰在线9| 天堂成人A片永久免费网站| 色婷婷a三区麻| 99人人干人人| 无码AV久久久久久久久| 成人九九视频| 丁香五月天.com| 丁香六月狠狠干| 婷婷5月天av| 综合超碰熟| 欧美久热| 狠婷婷五月| 色琪琪一综合久久激情五月视频| 天天干,夜夜爽| 色婷婷精品| 99re6热在线精品视频播放速度| 国产成人片| 操操自拍| 色99日韩| www.韩日视频| 欧美婷婷综合| 天天操综合网站| 色色色免费视频| 开心五月丁香婷婷| 97色女人在线| 丁香五月激情久久麻豆| 99九色视频在线观看| 先锋男人99资源| 久久久91| 五月天婷婷丁香人人操91| 91碰碰| 婷婷情爱五月天6| 亚洲婷婷六月天| 亚洲综合视频网| 丝雨一区二区| 99综合| 亚洲乱码w在线观看| 永久地址 色| 精品视频99看在线视频| 女人天堂久久| 91操黄| 亚洲一区二区无遮挡A片| 激情九九综合网| 五月六月播婷婷| 日韩肏屄网| 亚洲AV久久久久久久久久久久久久久久| 九九久久网| 99精品视频网| 丁香五月婷婷综合网| 97丁香花五月天激情小说| 久久精品综合色| 丁香五月婷综合| 99丁香五月| 99网| 婷婷色在线观看| 大香蕉天堂| 99热这里只有免费精品| 操一操插一插| 色婷婷色五月色丁香| 丁香六月啪| 久久99久久99精品免观看粉嫩| 1234操逼网| 丁香五月停停av| www.91五月| 免费无码毛片一区二区A片| 大香蕉人妻| 97视频91| 99热国产精品| 热久久这里只有精品| 亚洲精品激情| 色婷婷亚洲精品天天综| 欧美色骚婷婷五月天| a色色色色色| 99色精品视频| 偷拍九九五月丁香婷婷| 91日综合欧美| 婷婷综合偷拍| se99热久久一本| 91熟妇大香蕉| 久久日曰| 久色激情| 婷婷五月丁香欧洲| 四月婷婷五月丁香| 日韩AV在线免费观看| 色婷婷最新域名| 日韩大片艹艹| 久久久宗合| 亚洲色图45p| 久久久久久久久久8888| 99这里只有精品视频免费| 欧美久热| 国产永久一二一起草| 婷色成人| 久久久久综合激动五月天| 激情婷婷五月天伊人在线观看| 思思久久思思| 六月 丁香 视频| 丁香五月在线播放| 9操在线| 色综合五月天| 色热久| 五月天综合在线| 天天日天天插| 久久婷婷五月综合网| 91人人妻人人操| 一起草Av| 97深爱伊人综合| 色五月xxx| 五月丁香六月婷婷亚洲| 天天日天天插| 久久9视频| 丁香婷婷成人网站| 丁香五月激情综合久久| 综合五月亭亭9| 九九aV| 久久婷婷网站| 色婷六月| 久久久久久久五月| 婷婷色情小说| 久草热8精品视频在线观看 | 日本99视频| 五月丁香猫咪久久婷婷综合视频激情四射网入口 | 婷婷激情五月天激情| 亚洲精品国产A久久久久久| 五月丁香亚洲校园欧美| 五月婷婷色影院| 丁香五月婷婷亚洲另类| 亚洲欧美一区二区三区四区爱爱动图| 久久香蕉影院| 五月婷婷亚洲| 日本视频不卡123区| 色A网| 超碰人妻在线| 东京热伊人| 婷婷伊人久久| 超碰免费99| 婷婷五月天在线观看| 婷婷五月色情| 激情五月天婷婷| 婷婷精品综合| 婷婷五月天av| 91丨九色|PRNY熟妇| 九九热精品在线| 六月丁香婷婷大香蕉| 狠狠插狠狠操| 99久久精品国产色欲| 噜噜噜久久| 91丁香| 玖玖爱资源站| 九九99免费理论| 六月婷婷久久大全| 91N 一起草| 天天激情欧美美女| 色五月婷婷91| 日韩黄色电影| 丁香六月婷婷综合激情欧美| 超碰91在线| 99免费热在线精品| 五月婷婷五月| 五月婷婷综合网在线播放| 亚洲精品白浆高清久久久久久| 亚洲激情淫网| 日韩久久成人| 思思 热 99| 色婷婷久久综| 丁香六月色婷婷| 操碰91| 免费看欧美成人A片无码| 亭亭社区五月天| 在线日韩av| 97碰碰在线看视频免费| 久久激情视频99| 99久久9| 五月精品免费XXX| 日韩激情网站| 丁香大香蕉| 色欲婷婷夜夜| 色色色com| 99无码| 婷婷五月天AV网| 亚洲无AV在线中文字幕| 色婷婷六月天在线| 97久久五月丁香婷婷| 一级性爱视频| 婷婷婷色五月| 婷婷色狠狠| 婷婷六月激情| 五月色情婷婷开心五月色情| 欧美成人AAA片一区国产精品| 夜夜躁爽日| 亚洲av免费在线| 欧类av怡春院| ji'qi'luan'ren'lun| 996热re视频精品视频| 亚洲精品V天堂中文字幕| www 五月天 com| 97精品综合久久内射| 九九热在线精品视频| 亚洲AV成人无码久久精品老人法拉利| 久操干| 97人人草| 99热国产免费| 丁香九月综合| 日本人妻伦在线中文字幕| 深爱激情网综合| 日本一级一级一级一级| 超91热| 五月天综合在线| 亚洲五月综合色播| 色丁香五月| 九九色婷婷五月天| 久99热| 五月婷婷网五月在线|