欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,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
返回資訊列表
久久婷综| 91成人品| 日本婷婷| 九月婷婷色色| 九九色99| 玖玖在线视频福利| 综合激情在线观看| 亚洲天堂婷婷丁香| 久99久视频| 亚洲国产成人裸舞| www.夜夜操.con| 男人的天堂婷婷色五月| 狠狠综合| 丁香五月日韩| 激情AV在线| 色婷婷六月精品| 99综合熟女| 任你爽视频| 五月激情小说网| 精品一二三区视频立| 丁香97综合| 色中色综合| www,天天干| 色五月丁香总合网| 人妻久久久久久久久妻久久久久久久久| 99丁香五月| 久久综合性| 免费播放99性爱视频| 婷婷综合五月天| 婷婷狠狠青青| 影音先锋91视频| 狠狠穞A片一區二區三區| 九色七七| 成人版视频在线观看| 久久五月丁香综合17C| 亚洲啪啪视频| 香蕉综合网| 激情久久丁香| 91丨九色丨熟女丰满| 97色五月婷婷在线| 无码字幕中文| 五月天堂六月丁香亚州中文字幕久久 | 久久综合网免费视频| 操操熟女| 日本久久婷婷| 五月丁香久久综合| 丁香丁婷五月激情| 五月伊人综合| 色五月色综合| 天天色宗合| 淫荡综合网| 色亚洲婷婷| 99色精品视频| 午夜婷婷五月天在线| 丁香五月婷婷呀| 久九色| 日韩精品超碰在线观看| 九色婷婷| 天天射射夜| 色五月xxx| 91日韩在线| 影音先锋一区二区三区| wWwCom夜操wwW| 婷婷丁香五月综合| 99热这里只有精品13| 婷婷久久五月天亚洲欧美国产日韩在线观看 | 99这里有精品视频| 能看的av| 色婷综合| 99热九九这里只有精品| 五月久久亚洲| z色五月播播久久| 婷婷五月花| 久久婷婷丁香| 国产亚洲精品久久久久久郑州| 色综合久| 超碰色人妾| 玖玖综合玖玖| 激情欧美婷婷| 永久AⅤ1| 天天日天天色| 六月婷婷AV| 久久精品系列| 亚洲爱爱无码婷婷色五月| 色欲五月天| 婷婷综合六| 天天爽,夜夜爽| 久热99热| 亚洲av综合在线| 亚洲AV无码一区二| 五月婷婷co.m| 黄色成人网站在线播放| 婷婷五月激情黄色| 色综天天综合| 久久精彩免费视频| 韩国中文字幕91| 狠狠色噜噜色狠狠狠综合色| 秋霞三级影视资源| 狠狠色噜噜狠狠狠狠综合| 久色激情| 热五月婷婷| 情五月亚洲婷婷| 色婷婷视频在线| 五月婷婷AV| 国产成人AV| 亚洲精品网址| 婷婷六月色播| www.夜夜| 一级性感黄色内射视频| 五月婷婷69| 色综合色五月| 99偷拍视频在线日本| 五月大香蕉| 六月婷婷七月丁香| 五月婷婷丁香六月| 99re热在线视频| 色香五月天| 色五月欧美| 免费视频无码| 国产日批视频免费播放| 99ri在线| 手机旧版看人妻1025| 久久网思思| 久久精品4| 怎么样可以看免费的一级av| 天天色综合色色色色色。| 四色五月婷婷在线观看| 欧美色激情四射| 超碰超碰在线| 亚洲无码播放| 台湾无码A片一区二区| 五月婷婷婷自由综合| 六月综合婷婷开心伊人| 日本啪啪天堂| 婷婷五月无码| 色情五月婷婷| 激情五月天影院| 色99婷婷五月天| 亚洲丁香网| 日本天天色| 91丨九色丨熟女|老版| 亚洲色婷婷视频| 嫩草AV久久伊人妇女超级A| 97人人做| 天天操婷婷| 丁香五月色情| 婷婷综合在线| 色婷婷国色天香综合| 综合色五月天| 俺也去婷婷五月天第五色| 九九热婷婷| 伊人激情综合| 色偷偷色婷婷| 色综合丁香婷婷| 色色网站在线| 色九月婷婷丁香| 婷婷射婷婷舔| 婷婷久久五月天中文字幕在线观看| 色婷婷六月天在线| 91日精品| 久9久9久9久9久9久9| 久久hd| 99精品视频免费| 91男同视频| 婷婷五月天色综合翘| 欧美激情五月天| 国产色色网站网址| 午夜激情四射影院| 天天综合网91| 婷婷欧美色| 荡乳尤物3HP1V5| 4399在线观看免费高清电视剧| 色综合色色色| 亚洲性爱99在线| 丰满少妇猛烈A片免费看观看 | txt五月激情四射网综合俺也来了| 丁香5月婷婷| 国产黄色在线| 久久这里只有精品热在99| 日韩成人综合| 五月色网| 99热无码| 亚洲人成网亚洲欧洲无码久久| 狠狠操狠狠| 美臀自射自家人妻| 第五婷婷伊人丁香| 八戒青柠影视剧在线观看| 五月婷婷香蕉| 射久久丁香五月| 国产在线黄色| 六月婷婷狠狠做| 日本A片一区| 五月天成人免费视频| 日本99久久| 第四色在线观看| 亚洲色情网站| 久久这里只有精品07 | 人人操人| 99久久网站| 五月丁香在线精品| caop在线视频| 热99.com婷婷| 五月婷婷五月天| 五月天久久网站| 97色欧美| 成人性生活免费观看。| 69精品人人人人| 夜夜撸日日骑| 色五月婷婷成人视频| 中文AV网站| 五月天开心色情网| 日日色综合| 超碰99在线| 91中文狠狠综合| 另类 在线| 五月天婷婷开心| 无码髙清| 五月婷久久综合| 五月花免费视频| 久久久久久性爱视频| 日韩色色小视频| 2050人人操免费工开爱| 久久538| 色播播五月| 九九视频免费| 丁香五月中文字幕| 丁香六月| 久久久久久18| 免费色婷婷| www久| 色婷婷五月天成人网| 丁香六月天婷婷色| 夜夜www| 91婷婷丁香五月| 99久久喉9| 99碰碰| 五月天综合激情网| 欧美在线视频免费播放| 天天操人人干| 丁香六月成人| 婷婷五月丁香六月综合网| 婷婷五月天激情偷拍| 色婷久九| 九九精品亚洲| 五月丁香五月丁香五月丁香五月丁香91| CHINESE熟女老女人HD视频| 色婷婷9| 亚洲视频图片婷婷五月| 色婷婷久综合久久一本国产AV| va中文资源在线观看| 色婷| 九月丁香| 开心婷婷五月激情网小说| 九九热自拍| 开心五月婷婷综合在线精品素人| 超碰色女| 亚洲免费观看高清完整版AV线| 久草视频大香蕉99| 五月天社区婷婷丁香社区| 最新婷婷五月丁香| 日本欧特黄色刺激一区影视久精品无码| 久99999热视频在线观看免费| 超碰91在线| 日韩成人电影AV| 亚欧州精品视频| 丁香五月六月综合欧美| 久久综合影院| 99热这里只有精品青草| 狠狠穞A片一區二區三區| 色色婷婷丁香| 久久9热好| 亚洲精品一区中文字幕乱码| www.久久99精品| 婷婷五月激情综合网| 婷婷综合仓库中文| 操久久精| www.99热国产| 婷婷伊人久久综合| 日本WWW九九九| 97精品在线| 婷婷五月无码| 日本色色色色色色色色一色二色| 永久天堂日本| 五月色婷| 综合色色婷婷| 久热91精品| 91啪啪视频| 99re在线观看| 精品九九网| 99久久久久久www| 五月丁香啪啪网| 丁香五月婷婷激情小说| 午夜激情综合| 激情色中文| 婷婷色情 | 国产av一区二区三区| 色婷婷综合久久| 综合网网欲色| 99在线观看免费精品视频| 深爱丁香激情| 伊人婷婷大香蕉| 人人爱操| 久久9999| 五月天婷婷导航| 色五月AV| 校花娇喘呻吟校长陈若雪视频| 亚洲99精品九九在线| 色涩影院六月丁香| 五月天色婷婷视频| 91操熟女| 99碰碰碰| 色。 日日日| 五月丁香色| 五月天婷婷视频| 无码激情AAAAA片-区区| 成人国产综合| 婷婷五月视屏| 婷婷99视频在线| 欧美人人女女精品综合五月天| 九九热视频精品2| 激情五月深爱婷婷| 欧美日韩欧美| AV在线免费播放| 九玖欧洲亚洲| 婷婷丁香五月综合| 欧美人久久| 思思热性操| 亚洲AV网址| 日日操夜夜操不卡| 丁香五月激情婷婷激情| 日韩无码色色| 伊人五月婷婷| 五月天偷拍| 精品爱欲五| 性一交一乱一交A片久久四色| site:feetmall.com| 欧美成人A片AAA片在线播放 | 97爱艹婷婷开心丁香激情综合| 久久作爱| 国产精品视频| 色99色| 99国产性感视频| 亚洲成人综合在线| 婷婷六月激情小说网| 另类 在线| 麻豆忘忧草午夜| 五月 丁香 欧美| 五月天亭亭俺也| 九九热re99re6在线精品| 99久久精品视频女神1| 五月天激情视频| 中文资源在线a | 激情文学 综合 色| 精品婷婷| 色9999日韩国产| 91色吧网| 热久国产| 亚洲超碰在线| 色色综合成人网| 亚洲av免费在线| 五月99久久| 丁香五月AV| 91在线日本| 日日夜夜狠狠操| www.seqingwuyuetian| 欧美激情xxxXX| 超碰AV在线| 99热这里只有精品26| 亚洲中文字幕AV| 2017狠狠干| 天天综合色丁香| 亚洲av网址| 九九热只有精品| 成人网站高清无码| 亚洲不卡| 五月天合网| 五月丁香综合网| 怡红院院在线导航网| 五月天大香蕉| 97色伦另类图片小说视频| 丰满女老板BD高清A片| 99热在这里只有免费精品| 99亚洲精品| 色狠狠图片| 色操综合| 99碰碰| 亚洲久热| 人人色人人弄人人操| 三十路磁力链接| 91丨九色丨国产| 婷婷五月激情天| 99久久.www| 激情综合网址| 六月婷婷私欲| 综合色网站| 99热国产这里只有精品| 色婷婷狠狠久久综合五月| 久久久久久久久18久久| 开心五月婷婷| 五月社区丁香| 激情综合色图| 新激情婷婷| 五月丁香在线观看| 精a品a视a频| 婷婷碰碰| 日日杆天天| 五月天精品综合在线| 成人在线高清| 中字幕视频在线永久在线观看免费| 九九热这里只有精品9| 欧美色碰| 风流少妇A片一区二区蜜桃| 五月婷婷综合潮喷| 日本三级大片| 亚洲五月天色色| 深爱婷婷网| 99热只有这里才是精品| 99色热| 丁香五月婷婷社区| 婷婷精品免费久久| 美女五月狠狠| 丁香婷婷六月激情综合| 91精品久久久久久综合五月天| 亚洲精品国产A久久久久久| 色五月丁香婷婷久草| 国产乱码久久| 超碰在线9| 久久97久久99久久综合欧美| 99激情网| 俺去也综合| 99爱在线| 久久丝丝热| 久久99三级在线视频| 超碰av在线| 婷婷激情六月视频| 九九热国产| 亚洲五月丁香综合网| 久久精99| 大香蕉 婷婷| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | av操逼网| 老师的粉嫩小又紧水又多A片视频 粉嫩AV久久一区二区三区 | 色噜噜婷婷| 思思久ren热| 久久最新色| 日操夜操天天操不卡| 激情五月天影院| 丁香五月天婷婷中文字幕| 久久成人综合五月天| 99re热视频这里只有综合亚洲| 综合九九久久| 99久久五月婷婷| 在线理论片| 综合五月婷婷| 涩涩涩五月天| 东京热免费视频| 991国产精选视频在线播放下载| 伊人AV五月婷| 激情婷婷五月天日本系列| 亚洲综合网激情小说| 九九亚洲视频| 婷婷丁香色五月亚洲| 99免费热视频在线| 亚洲综合五月天婷婷丁香| 在线超碰91| 色99超碰| 欧洲精品爱爱| 色婷婷777狠狠| 亚洲AV网址| 色婷婷综合综合网| 六月婷婷综合| 久久五月天合网| 热的国产99热| 欧美色播综合在线观看| 五月天性色| 白天AV月月| 婷婷五月天激情视频| 五月天色婷婷小说| 婷婷五月天色综合| 婷婷五月丁香六月| 久久98| 久久久久久欧美精品se一二三四| 五月综合激情网| 丁香五月在线观看| www.97视频| 婷婷大香焦| av操B网站| 99re视频在线| 综合婷婷| 天天插天天| 十月色综合| 激情噜噜噜| 色婷婷综合久久久久| 久久久婷| 99热传媒| 96精品久久久久久久久| 丁香五月综合色婷婷| 狠狠肏综合网| 99在线小视频| 26UUU欧美| 国产精品涩涩涩视频网站| 99热在线播放精品| 五月色婷| 都市激情小说婷婷| 丁香五月婷婷啪| 婷婷激情五月| 99热第一页| 淫视馆aV二区一区| 久久这里有精品在线观看| 久久婷婷五月| 蜜臀AV在线观看| 九九热青青草| 99 热| 婷婷激情五月天小说| 69色婷婷| 天天肏在线| av免费在线网站| 性色欲情 网站| 丁香五月天激情网| WWW.婷婷| 色婷婷综合在线| 久久只有精| 天天爽天天摸| 婷婷丁香六月| 黄色一级影片| 99热这里只有在线| 婷婷五月天成人| 丁香婷婷五月人体| 日韩AAA| 超碰成人在线观看| 秋霞少妇毛片| 丁香五月激情六月综合| 五月综合无码| 色九九七七| 3p日韩网站视频| 大香蕉婷婷色| 99碰碰中文| 男人综合网| 色综合区| 亚洲Av成人在线观看| 婷婷伊人久久综合| 无码少妇高潮喷水A片免费| 人人干人人操外国| 婷婷综合六| 天天狠天天叉| 色五月天激情| 91婷婷色 | 久久玖玖综合| 亚洲va欧洲va国产va不卡| 激情丁香五月婷婷| 婷婷五月天成人导航| 天天插天天射| www久久久久久| 精品久久久久久久久久久久人妻| 国产AV国片偷人妻麻豆| 少妇日麻屄| 久久99视频| 久99久视频免费观看| 五月丁香婷婷开心| 久久男人网婷婷| 欧美性丁香色色五月天| 亚洲精品一区无码A片| 色情综合网| 91操片| 探花搜索结果 - 黄上黄| 99热只有精| 四川女人毛多水多A片| 日日日,com| 色偷偷综合| 这里只有精品偷拍| 开心激情站| 综合97五月| 五月花激情| 婷婷亚洲色| 久久亚洲婷婷| 99热大全在线观看| 成人无码髙潮喷水A片| 天天做天天视天天谢| 激情五月丁香婷婷| 色青青五月| 成人精品视频99在线观看免费| 怕怕av| 成人做爰高潮A片免费视频| 婷婷五月蜜桃成人桃色丁香| EEUSS鲁片一区二区三区| 丁香香五月激情免费视频| 激情六月婷婷| 天天激情视频| 五月婷婷综合在线视频| 天天做天天爱天天爽| 视频1区2区| 在线网黄| 五月婷婷中字在线| 任我干视频在线观看| 天天天操天天天日| 久婷婷婷| 中文字幕无码人妻少妇免费视频| 这里只有国产精品在线| 玖玖综合玖玖| 99色婷婷| 日日射天天射| 激情狠狠丁香月| 人人操婷婷| 久9无码视频| 日本色色色| 成人做爰A片免费看视频| 婷婷五月天综合中文| 五月天婷婷激情在线色图| 99这里有精品视频| 天天拍夜夜爽| 91精品婷婷国产综合| 激情婷婷| 婷婷五月天激情文学| 婷婷综合色| 国产精产国品一二三在观看| 五月天亚洲综合网| 激情丁香久久| 色五月综合97| 成人看片网站| a久久| 激情综合4月| 伊综合蕉| 五月丁香综合| 欧美黄色韩日网| 国产99美少妇| 精品综合爱| 色婷婷激情| 精品人妻一区| 欧美日韩大黄| 99精品在线观看视频| 成 人片 黄 色 大 片| 四月婷婷五月丁香| 操日本人妻视频| 成人av在线电影| 欧美性爱丁香五月| 99热99色| www.色五月.com| 五月丁香六月婷婷网站| j久久性爱视频| 日日噜噜久久婷婷五月天| 99热伊人| 久久综合中文| 夜夜谢天天干| 五月天色裸体视频| 色九月激情综合网| 五月色婷婷亚洲| 思思99久久| 99热99日天天干| 欧美精品XXXXBBBB| 丁香婷婷五月| 大香线蕉伊人| 色色色色色网| 2025年最新亚洲在线欧美| 琪琪理论片| 久99久视频| 色色婷婷丁香五月天| 67194线路二在线观看| 在线观看国产高清视频免费网站| 天天狠天天叉| 九九热免费| 五月婷婷丁香综合| 激情啪啪五月| 99玖玖在线视频| 日本熟女二区| 丁香五月六月综合激情| 丁香婷婷深情五月亚洲| 狠狠搞亚洲| 久久开心五月婷婷| 五月婷婷激情四月| 久久久久思思热| 免费播放99性爱视频| 激情网开心网| 人人看人人摸人人| 激情丁香五月天图片| 国产三级秋霞| 日本天天操| 婷婷激情六月| 成人婷婷| 99热6精品| 可以直接看的av| 五月天婷婷久久| 丁香九月激情| 野战J办公桌椅H| 日木WWW视频| 五月天大香焦| 草草影院爱爱| 日本99久久| 丁香五月天在线观看视频| 综合狠狠伊人| 久久伊人日日夜夜| 色婷婷裸体色性在线| 青草少妇激情| 激情视频综合| 久久久精品人妻| 影音先锋女人AA鲁色资源| 成人做爰黄A片免费看直播室男男| 欧美成人在线观看| 人人操人人看97干| 四色永久成人网站| 国产淫熟妇| 色色综合网络| 精品久久9| 婷婷五月天色色| 亚洲字幕AV一区二区三区四区| 国产人妻777人伦精品HD| 亚洲狠狠色丁香婷婷综合久久| 五月激香蕉网| 色婷婷777狠狠| 五月天综合网| 久久婷婷丁香六月天| 婷婷五月天综合小说网| 色婷婷婷婷| 久久综合99| 色五月婷婷丁香凹凸| 五月亭亭色| 91欧美| 久久五月丁香综合17C| 99热这里全是精品| 99自拍视频在线| 五月网站| 日日噜噜久久婷婷五月天| 色五月网址| 六月伊人婷婷| 婷婷色色婷婷| 欧亚成人A片一区二区| 91丁香色五月| 亚洲五月丁香综合网| 色婷五月天网站| 六月丁香中文字幕| 免费无码毛片一区二区A片| 免费人人操| 视频这里只有精品| 成人va在线播放| 天天综合网在线| 亚洲AV电影av| 开心久久五月天| 另类五月激情| 久久久久婷婷| 日本乱论99| 天天干天天 亚洲| 国产在线黄色| 婷婷五月天社区| 9l视频自拍九色9l黑人| 亚洲综合在线伊人婷| 五月人妻婷婷视频| 少妇人妻偷人精品无码视频新浪| 激情性爱五月| 六月婷婷九月丁香亚洲综合| 99色色网| 婷婷在线综合| 婷婷五月丁香久久| 国产成人精品亚洲线观看| 91九色欧美| 日日插日日干| 嫩BBB槡BBBB搡BBBB| 99久久精品色老| 日日夜夜小色哥| 六月丁香啪啪啪| 91婷婷色| 99色色网| 日本波多野结衣视频| 九九无码视屏| 日日干夜夜撸夜夜骑| 伊人无码高清| 色色亚洲五月天| 婷婷射图五月天| 激情综合五月激情XXXX| 91久久久久久久久| 婷婷五月天综合亚洲| 婷婷视频网| 久机视频这只有精品| 六月婷婷综合| 久久激情五月婷婷| 青草激情在线| 丁香五月六月欧美| 激情综合网亚洲色图| 五月色情婷婷开心五月色情| 99亚色色色| 日韩成人综合网| 婷婷色五月大香蕉在线观看| 丁香视频| 亚洲成Av人片乱码色第1集| 影院久久久| 婷婷视频在线碰| 夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲色 | 国产av基地| 伊人婷婷色| 五月天丁香啪啪啪啪| 青青久久五月天丁香婷婷| 校花娇喘呻吟校长陈若雪视频| 五月丁香综合| 欧美激情五月天| 另类少妇人与禽zOZZ0性伦| 婷婷色影院| 欧洲色区| 粉嫩AV久久一区二区三区| 中文字幕丰满孑伦无码专区| 丰满人妻妇伦又伦精品国产| 婷婷五月欧美综合| 激情涩播| 久操人| 99少妇精品| 人人操操| 午夜成人网站在线观看| 97人人干| 日韩人妻无码一区二区| 五月天成人手机在线视频| 婷婷五月天com| 79色色| 婷婷免费视频| 欧美天堂久久| 久久婷婷六月综合| 免费看欧美成人A片无码 | 免费看欧美成人A片无码| 亚洲V国产V欧美V久久久久久| 丁香五月婷婷av影院| 色婷婷呢狠禁久禁| 丁香激情五月天| 2015好吊操| 色五月丁香总合网| 五月天婷婷视频30| 九九婷婷五月天| 激情综合网址| 日韩999| 噢美99| 亚洲狠狠婷婷| 一起草av| 丁香五月宝贝激情网| 国产精品VA在线| 欧美视频五区| 亚洲精品久久久久AV无码| 六月色丁香婷婷| 天天综合网~91综合网| 第四色婷婷日本| 久久久久99精品成人片| 久色大| 日本狠狠干| 99精彩视频在线观看| 久久总和99| 五月天婷婷青青| 久久久久久久久人妻| 婷婷色五月天在线观看| 丁香五月五月婷婷欧美大香蕉| 亚洲av无码精品色午夜| 99热九九这里只有精品| 26uuu国产激情视频| 天天日日夜夜| 51精品国自产在线| 色五月97| 夜夜做天天爽| www夜夜操com| 久久婷婷精品| 久七香蕉| 日本人妻丁香婷婷久久寝取熟女五月| 亚洲男女激情| 久久曰曰| 久久久久激情网| 99热国产这里只有| 九九这里是免费的视频5| 嫩草AV久久伊人妇女超级A| 人妻激情视频| 色色丁香五月婷婷| 五月色婷| 91啦丨九色丨刺激中文| 人妻狠狠操| 五月天婷婷在线播放| 亚洲操逼网| 天堂综合久| 天天操天天爽天天爱| 五月婷婷色影院| 色五月丁香A欧美com| www.激情| 丰满熟女人妻一区二区三| 无码日本精品XXXXXXXXX| 亚洲人妻电影| 激情网开心网| 99久超碰| 国产精品黑丝| 天天操天天操综合| 成人视屏在线观看| 99丁香五月婷婷在线| 婷婷综合五月激情| 久久久免费精彩视频| 草草影院爱爱| 天天精品视频在线观看视频| 青草视频在线观看视频| 丁香五月中文字幕| 久久综合五月天| Av狠狠色丁香婷| 亚洲久久视频| 九九五月天| 国产精品国产| 激情伊人五月天| 99视频| 欧美美女国产日韩一区二区久 | 五月丁香六月综合激情| 中文中文在线| 久久亚洲网| 91婷婷丁香| …亚洲黄色在线播放日韩、av中文a…| 亚洲超碰在线| 亚洲成人AV在线观看| 亚洲XX网| 嫩草乱码一区三区四区| 欧美日本不卡黄色片| 亚洲爱爱无码婷婷色五月| 这里只有精品久久| 超碰女人天堂| 色婷婷久久综合| 久久婷婷草| 色综合99| www,com,五月色色| 婷婷五月草| 丁香熟女乱| 久久婷婷色五月| 99热在线极品极品| 久久婷婷一级片| 伊人久久大香线蕉精品| 丁香五月色情| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 性爱视频久久| 午夜色色色极品视频| 五月丁香综合中文| 操日视频| 国产激情AV| 亚洲午夜视频| 91chinese在线| 91色五月| 狠狠综合网| 91婷婷色| 玖玖热视频| 六月丁香基地| 五月丁香六月婷| 极品 少妇 内射| 极品人妻VIDEOSSS人妻| 五月综合缴情网| 五月婷婷色在线| 久热这里只有精品66| 香蕉视频性爱BB做爱| 五月天 另类图片| 婷婷欧美激情| 九九青草热| 欧美色五月| 九九亚洲| 色婷婷亚洲在线| 91丨人妻丨国产丨丝袜| 五月婷婷六月丁香玖玖玫瑰91| 五月婷婷啪啪啪| 婷婷精品视频| 婷婷激情六月综合| 婷婷黄色网| 激情五月色婷婷| www.婷婷五月| 激情第四色| 婷婷五月色丁香在线看| 精品自拍97| 欧美日韩成人在线观看| 欧美色狠婷久| 欧美成人一区二区三区在线视频 | 九九视频这里只有精品| 激情丁香久久| 在线中文字幕免费视频| 亚洲色图五月丁香| 九九综合久久| 开心色色五月天综合| 国产三级秋霞| www激情| 思思久久99热只有频精品66| 天堂草在线观| 狠狠爱激情网| 久久婷婷五月天| 丁香五月婷婷色偷偷| 中文婷婷狠狠| 久久久18| 国产乱妇乱子伦| 91精品又长又大又粗又爽又猛| 99久久综合| 九九性视频| 久久激情视频99| 五月丁香在线观看国产| 丁香激情五月| 六月色狠狠色| 黄色一极大片| 精品亚洲国产成AV人片传媒| 狠狠色成人影片| 99热这里只有精品268| 啪啪操网| 欧美色色色色色| 天堂草在线看www| 天天射影| 色婷婷av综合网| 色色色色色色色色网站| 伊人网色婷婷五月天| 九色视频91| 丁香婷婷久久五月天| 五月天激情四射| 婷婷婷婷婷婷婷五月丁香| 亭亭五月丁香综合欧美| 成人一区在线观看| 亚洲爆乳无码精品AAA片蜜桃| 夜夜爱网站| 好好日激情五月天| 久久hd| 精品一区久热| 天天爱天天爽| 停婷丁五月在线| 六月色色婷婷| 中文字幕永久免费| 九九久久高清| 婷婷狠狠综合网入口| 色99网| 色综合99| 思思99热在线| av在线免费播放| 国产黄色av| 风流少妇A片一区二区蜜桃| 五月丁香婷婷在线| 五月天啪啪啪| 久久99色色| 婷婷基地成人五月天| 久久新地此| 五月婷综合| A短视频免费在线观看| 午夜丁香| 99热免费精品| 婷婷五月天播播| 亚洲AAAA网| 亚州激情网站无码| 久久92| 婷婷狠狠97| 变天就操逼婷婷五月| 精品夜夜澡人妻无码AV| 狠狠搞狠狠操| 国产亚洲99久久精品| 26uuu精品一区二区| 天天爽天天摸| 人妻videos人妻高清| 熟女乱论网| 亚洲夜五月| 99日本黄站| 97人人操| 伊人狠狠丁香婷婷综合尤物| 人人操人人添人人摸97| 色吊操色妞| 秋霞av吧| 综合色图婷婷| 丁香五月婷婷激情四射深爱激情| 五月婷婷影院| 久久久久9| 人人草人人舔| 婷婷狠狠操| 色99视频| 激情视频综合| 欧美99视频| 婷婷五月天情色| 色色com| 婷婷亚洲综合| 98永久精品| 丁香六月激情综合| 热99免费在线| 成人电影AV在线观看| 日日干日日| www.99热在线| 丁香婷婷在线| 日韩视频99| 囯产精品久久欠久久久久久九大| 99久久综合| 五月婷婷激情综合av| 类似婷婷激情综合网站| 九九热最新| 五月色婷婷中文字幕| 超碰人人干| 成人亚洲精品| 天天干,天天日| 国产精产国品一二三在观看| 粉嫩AV久久一区二区三区| 日欧一片内射VA在线影院| 最近中文字幕2019视频1| 无码成人AAAAA毛片AI换脸| 久久五月婷天天干| 久久久91精品| 婷婷久久图片| 超碰色色综合| 九九久久五月天综合伊人| 天天干,天天舔| 一二三区视频韩国| SS丁香五月婷婷| 激情五月天社区| 超碰在线精品| 日日操天天操| 这里只有精品96| 九月丁香欧美综合| 热99精品视频| 亚洲视99| 亚州精品色情在线观看| 大香蕉院线| 九九热最新| 久99| 日韩性爱AV| 国产精品国产| 五月天丁香婷婷社区| 少妇激情基地| 五月婷婷精品视频| 五月丁香黄色视频| 成人片在线播放| 成人精品视频99在线观看免费| 色色婷婷综合| 五月丁香婷草| 99热国内| 香蕉AV777XXX色综合一区| 九九五月天| 日日操夜夜擼| 成人一区在线观看| 亚洲小视频免费播放| 天天热夜夜操| 婷婷五月天成人网| 婷婷久久综合久| 久草婷婷视频| 乱码操操| 亚洲无码九九| 色色婷| 97在线观视频免费观看| 中文字幕黄色电影网址| 狠狠操.com| 99re这里有精品手机在线| 五月丁香六月色| 少妇高潮A片无套内谢麻豆传| www:99热视频| 午夜丁香丁香婷婷| 天天色宗合| 99色色网| 日本人妻久久| 婷婷欧美激情综合| 爽天天天天天天天| 亚洲色综合| 亚洲自拍天堂| 丁香激情合作五月| 99∨VTV| 影音先锋91网站在线观看| 日本久热| VA婷婷亚洲| 激情五月天婷婷五月天| 丁香激情五月天| site:hcxsz888.com| 天天摸天天舔| 色欧美一级| 91操网| 日本操B视频| 欧美成人精品A片免费一区99| AV中文网| 99激情网| 日韩操逼大片| 丁香婷婷综合影院| 都市激情久久| 香焦网五月天| av一区免费看| 天天色一道本综合婷婷| 91久久精品无码一区二区三区| 不卡成人免费| 丁香六月婷月91婷月| 类似婷婷激情综合网站| 亚洲操女| 激情桃色网 | 午夜丁香六月婷| 五月丁香久人妻中文| a毛片二逼wwwwwwwwww| 色情五月天se| 人人摸人人| 五月天婷婷狠狠| 99亚洲无码| 久久人妻熟女一区二区| 超碰99在线观看| 久操福利| 香蕉大综综综合久久| 丁香五月中文字幕久色| 亚洲精品久久久无码| 久久99这里只有精品| 久婷| 影音先锋男人资源站一区二区| 色女伊人| 精品综合网在线| 嫩草综合网| 色色99| 2050人人操免费工开爱| www.五月丁香| 99九九玖玖| 五月天婷婷AV| 六月激情网| 色五XX| 五月丁香 狠狠爱| 日日操天天爽| 色综合视频在线| 狠狠色丁香婷婷基地| 丁香五月激情五月| 99久热这里有精品| 丁香五月在线观看| www.色五月| 可以免费观看的av| 中文字幕婷婷五月天| 精品久热| www。五月天激情| 一本色道久久综合狠狠躁小说| 色噜噜狠狠色综合成人网| 日韩另类在线观看| 五月丁香六月色| 国产精品成人AV在线| 色综合视频| 亚欧州精品视频| 九九色欲网| 欧美色久| 色色操| 九九热免费视频| www.操逼comm| 老美AA片| 婷婷六月色播| 激情丁香五月| 亚洲激情精品| 丁香婷婷影院| 天天爽天天摸天天爱| 干一干xxxx| 久9无码视频| 五月天堂色| 亚洲AV免费在线| 色九月激情综合网| 久久久av久av久片一区二区| 99ri精品在线观看| Aα在线免费观看| 色五月婷婷亚洲最大| 日韩 中文 欧美| 色婷婷成人| 激情性爱五月| 精品人妻一区二区三区四区不卡在| 99色色热| 成AV人片一区二区三区久久| 天天碰天天插天天操| 五月婷视频在线观看| 久久色9| 久久久激情视频| 能看的AV| 99这里是精品| 99热亚洲精品| 亚洲视频99| 初夜av| 碰碰碰97免费精彩视频| 婷婷五月天激情综合| 丁香5月激情网| 国产午夜成人免费看片无遮挡| 五月婷天天搞视频| 99日在线观看视频| 丁香五月网址| 色婷婷丁香五月高清在线| 精品五月花| 色五月丁香婷婷在线观看| 色综合久久44| 亚洲精品久久久无码 | 色婷婷五月天在线观看| 欧美综合五月丁香六月婷| 欧美精品A片一区在线观看| 狠狠操狠狠操AV| 色色丁香五月婷婷| 99热99| 久色| 亚洲综合激情五月久久| 99小视频| YW无码| 9l视频自拍9l九色成人|