免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

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热这里只有精品99| 黄色91在线观看| 午夜婷婷久久 | 五月花综合网| 激情综合网五月| 中文人妻主播久久| 99色五月| 丁香五月 无码| www久| 开心五月丁香婷婷| 99热www.| 婷婷丁香社区网| 99热很操老逼| 丝袜熟女一区二区三区| 中文字幕丰满孑伦无码专区| 国产成人+综合亚洲+天堂| 996日日爱| 久操b网| 色婷大香蕉| 五月丁香激情啪啪| 五月丁香六月在线| 五月丁香色情| 99热这里| 国产毛片精品一区二区色欲黄A片 欧美交换配乱吟粗大25P | 色婷婷综合在线| 六月丁香网| 五月丁香影视| 丁香五月六月婷婷综合| www.激情五月| 六月激情网| 色五月丁香六月婷婷| Av性爱网站| www98日本小时间到了| www.金莲av| 五月亭亭六月天| 九九这里只有精品| 伊人网啪啪| 五月天久久丁香| 婷婷五月 丁香六月| 婷婷五月综合啪| 91丨九色丨首页| 久久九九99字幕| caop在线| 亚洲美女婷婷五月天| 波多野结衣AV无码Porn| 亚洲AV网站| www.日韩国产| 国产婷婷色五月| 99超级碰碰| 人人综合91网| 久久新地址| 婷婷色五月大香蕉在线观看| 九九九这里只有精品| 九九热精品99| 婷婷丁香五月av| 婷婷香蕉| 大香蕉院线| 激情五月天网页| 色99最新网址| 亚洲XX网| 天天做天天爱天天爽夜夜揉| 丁香五月婷婷综合视频| 久久婷婷五月天激情| 日本人妻丁香婷婷久久寝取熟女五月| 丁香欧美| 日本3级片一区2区| 996热| 91色久| 五月丁香色综合| 五月色网| 婷婷久久在线| 五月婷婷综合激情网| 97色在线| 华人在线免费| 五月婷婷啪啪| 久久全意婷婷| 九月丁香婷婷综合| www激情网| 五月天另类小说久久小说网| 久久久999精品| 成人天天爽| 五月天伊人av| 激情五月天婷婷| 五月丁香无码| 婷婷综合色五月天| 综合性视频99| 99re视频在线播放| 伊人热在线大香蕉| 中文资源在线a | 久热99狠| 婷婷丁香久久| 几激情五月婷婷色五月色天堂| 免费亚洲婷婷| 少妇搡BBBB搡BBB搡毛茸茸| 九九色网专区| 六月婷婷深深爱| 在线看九一V图片| 玖久久网站| 婷五月天| 色播五月丁香综合| 色婷婷亚洲婷婷| 国产乱人偷精品人妻A片| 日韩限制级大尺度黑料泄密大尺度视频一区二区在线观看 | 日本欧美国产| 精品人妻伦一二三区久久| 人妻体体内射精一区二区| 五月婷av| 97操碰人免费| 香蕉婷婷色五月| 99er久久| 国产毛片操B| 五月婷网| 99ri国产在线| 色婷婷先锋| 天天色天天爱天天舔| 岛国av网站| 久久久国产精品黄毛片| 日韩人妻无码一区二区| 婷婷六月丁| 91女人18毛片水多国产| 玖操97| www.五月天婷婷| 国产人妻777人伦精品HD| 狠狠九九婷婷韩| 五月丁香啪啪拍| 亚洲无码11| 天天日日天天| 日本欧美成人片AAAA| 我去色色网五雨天| 在线视频99| 九九热123| 亚洲国产精品成人免费一区久久久在线观看AAAA | 天天射综合网站| 夜丁香五月婷婷| 99只有精品| 天堂网色色| 狠狠色综合五月| 99热66| 五月天激情影院| 精品成人在线| 俺去啦综合网| 欧美成综合在线观看| 色五月婷婷五月久久| 色色免费网站| www.99色| 五月激情影院| 久久机热这里只有 | 99久久久精品| 久久婷婷五月综合色丁香| 欧美日韩色色| 另类小说色婷婷| 殴美97色| 99碰网站| 久久九九怡红院| 亚洲网视屏| 久久久欧美精品sm网站| 综合久久综合| 色色五月天婷婷| 日韩性视频| 91人操| 五月天色综合| 色www久视频| 天天插天天很| 97偷拍在线视频| AV性爱在线| 国产44页| 激情色播| 深爱激情婷| 欧美成综合在线观看| 婷婷六月视频| 成人av中文字幕| 九月丁香婷婷综合| 人人爱天天摸摸天天爱| 九九久久久综合| AVV黄| 亚洲人人操| 婷婷综合精品| 久久视频在线视频| 五月激情在线| 色婷婷视频| 人妻熟人中文字幕一区二区| 色欲一区二区三区精品A片| 四季AV综合网| 激情五月婷| 狠狠搞亚洲| 激情伊人网| 久99久精品| 精品久热| 国产第99页| 亚洲第一成人无码A片| 日韩亚洲视频| 亚洲无码猫咪| 精品一区二区三区免费毛片爱| 婷婷色五月天综合网| 久热在线观看视频9| 色婷久| 99在线精品视频观看免费下载| 天天色情站| 日韩十国产极品久久| 激情五月天综合网| 99视频热99| 丁香六月婷婷久久高清| 亚洲精品白浆高清久久久久久| 五月丁香婷婷潮喷中文字幕| 99热这是里只有精品| 久久ri精品视频| 高清不卡一区| 综合激情视频| 婷婷五月精品在线| 色一区高清| 91熟妇大香蕉| 字幕网AV中文字幕| 日本人妻A片成人免费看片| 日本AAAAAAAAAAAAAA片| 五月丁香婷成人网| 综合久久综合久久| 久久久99日本大片| 4399精品一区二区| 99久久九九视频| 色婷婷大香蕉| 激情六月婷婷| 色综久久久| 亚洲a色| 五月草视频| 五月6香色婷婷视频| 丁香99| 九九综合| 九九色影院| 五月开心深爱激情网| 五月六月婷婷激情网| 草久私拍| 99丝袜精品视频网站| 久久99热这里只频精品6学生| 久久怕怕视频| 99乱视频| 六月婷婷视频| 久久在线大香蕉| 亚洲色情在线| 精品99在线观看| 亚洲蜜桃精久久久久久久久久久久| 91大屁股精品| 91丨九色丨熟女|老版| 综合婷婷五月丁香在线观看| 九九热经典视频在线观看| 99久久66| 色五月婷婷丁香国产在线| 丁香五月婷婷激情网| 激情婷婷视频在线| 99精品视频推荐| 亚洲精品九九| 亚洲狠狠婷婷| 丁香六月激情四射| 五月天婷婷激情网| 乱女乱妇熟女熟妇综合网站| 另类婷婷丁香| 五月天另类图片| 五月婷婷九月婷婷九月婷婷| 五月婷精品| 婷婷五月18永久免费视频| 六月婷婷七月丁香| 日本色色视频| 在线观看免费狠狠色丁香香综合| 综合AV在线| 久久婷婷五月综合激情国产| 青青热久精品视频在线观看| 激情五月综合ì香亚洲| 五月 婷婷 成人| 97韩国久久电影院| 1区2区视频| pacopacomama 070722_670 素人奥様初撮りドキュメント 103 大久保純子 | 色婷婷呢狠禁久禁| 日韩婷久| 9 1超碰九色| 婷婷九月激情| 婷婷五月天激情在线观看| 成人欧美一区二区三区在线观看| 91久久婷婷人人澡草| 五月丁香狠狠| 亚洲啪啪啪啪| 亚洲日本韩国| 激情五月份婷婷| 五月婷在线影院| av九九| 五月婷伊人| 久热这里只有精品视频6| 99热这里只有精品最新地址获取| 在线婷婷| 五月丁香激情婷婷综合字幕| 激情五月天 婷婷| 婷婷五月天社区| 伊人干综合| 97精品综合久久| 人妻日日日| 婷五月天| 五月婷婷丁香深深爱| 99热只有国产在线精品| 久操无码| 99日热在线视频| 啪啪操超碰| 激情五月激情综合俺也去婷婷小说 | 色婷婷五月天小说网| 91人人爽久久涩噜噜噜| 五月丁香| 综合色五月天| 丁香成人视频| 在线观看国产高清视频免费网站 | 一级片sese片.COM| 婷婷五月天精品| 婷婷综合激情| 琪琪色影音先锋| 六月丁香婷| 五月天停停基地| 色色免费网站| 亚洲激情| 99爱视频免费看| 自拍偷窥99热| 色色九区| 激情五月,深深爱五月| www.色五月.com| 色色婷婷综合| 综合激情五月丁香9999久久精| 99re8这里只有精品99re8热视频| 国产看真人毛片爱做A片| 色婷婷色| 九九视频这里有精品| 九九热精品在线| 亚洲在线成人| 五月激情网络| 91妻人人爽人人看片| 久久五月视频| 五月天伊人综合| 色逼综合网| 婷婷五月丁香基地在线视频官网| 极品另类| 六月婷色| 99爱视频| 99热丁香五月| 色噜噜狠狠色综无码久久合欧美| 超级碰 久久9| 日本操B视频| 农村熟妇高潮精品A片| 91精品婷婷国产综合| 日日操天天爽| 成人AV播放| 伊人五月天男人的天堂在线| 日日爽日日| 黄色一级影片| 国产在线黄色| 色欲av伊人久久大香线蕉影院| 天天干夜晚夜操| 182.t午在线观看| 婷婷五六日| 日本三级日本三级99| AV在线资源| 人人草人人爱| 五月丁香成人| 国产午夜一区二区三区| 午夜丁香丁香婷婷| 91操碰| 五月丁香六月婷婷综合在线| 狠狠综合网| 婷婷五月在线免费| CHINESE熟女老女人HD视频| 热的国产99热| 免费观看全黄做爰的视频| 99这里只有精品国产| 亚洲成人网站在线观看| 五月四色婷婷| 欧美人人超级碰| 五月天久久91| 色欲天天综合| 五月天婷婷基地| 婷婷久久五月天亚洲欧美国产日韩在线观看| 九九99久久| 亚洲国产色婷婷| 久久激情网| 丁香五月另类小说在线阅读| 日逼影音先锋男人资源站| 亚洲 五月 婷婷 成人| 99热爆在线| 日日爱激情| 亚洲视频国产一区| 婷婷色五月激情| 视频免费精品免费精品免费精品免费精品免费精品免费精品免费99 | 天天天在线观看| 在线观看免费狠狠色丁香香综合 | 久热精品视频在线观| 激情五月天丁香| 天天日夜夜草进麻麻的子宫| txt五月激情四射网综合俺也来了| 五月丁香六月综合激情无码软件亮点 | 日本99热| 五月婷婷六月丁香在线| 99开心五月五月丁香激情| www.天天干| 26uuu亚洲欧美| 欧美月久久| 久久婷婷五月天懂色| 成人欧美一区二区三区在线观看| 天堂网色婷婷| 欧美性爱五月天| A久网| 久天综合| 久久九九热re6这里有精品| 涩涩五月天| 色噜噜,噜噜色| 色播激情| 99精彩视频| 天天日天天爱天天噪| 色女人久久| 拍真实国产伦偷精品| 26UUU欧美| 永久无码色| 久久婷婷老| 无码人妻电影| 四月婷婷丁香五月| xxx日本东京热| 97影院一级片| 91干99| 三级三久久线久久99久目本WW| 国语精品探花| 色五月av伊人| 丁香五月性| 20253AV| 婷婷色五月丁香六月欧美啪| 天天干天天操天天拍| 丁香五月图片| 99热99在线| 九九成年视频| 丁香五月天久久| 色欲色香综合网| 婷婷五月天精品| 99re在线观看视频| 中文字幕在线免费观看视频| 97资源碰碰在线| 五月天激情美女久久| 婷婷五月天久久久| 日本久久性| 色婷婷丁香五月天| 婷婷五月天com| 日木狠狠干| 吊色AV男人的天堂| 婷婷五月无码| 久久天堂婷婷五月| 日韩有码一区| 久久婷色| 噜噜噜狠狠色综| 婷婷94s| 成人综合网站| 粉嫩AV久久一区二区三区| 免费亚洲婷婷中文字幕| 97婷婷丁香| 天天爽天天做| 亚洲激情免费视频观看| 深爱激清网| 99久久99热这里只有精品| 色狠狠激情五月| 婷婷伊人中文字幕| 五月丁香激情综合网| 在线视频99| 狠狠情色| 超碰免费99| 色哟哟www| 五月婷婷导航| 天堂久久精品| 亚洲日韩国产黑丝黑丝AVAV一区二区三区| 日韩成人av在线| 色99在线观看| 开心六月丁香五月婷婷| 五月天激情小说电影| 一区二区中文字幕| 操逼123网| 色婷婷色五月色丁香| 欧美天天综合网站上去吧| 美女天天艹人人爽| 五月丁香六月激情狠狠| 五月丁香花婷婷玉莉AV| 五月久视频| 色五月激情五月开心五月| 能看的AV| 99热6这里只有精品| 久久精品这里只有精品免费首页| 精品人妻伦九区久久AAA片| 成人综合网站| 碰久久精品w| 51XX嘿嘿午夜无码| 丁香五月天导航| 丁香香五月激情免费视频| 婷婷大美在线| www.99热视频| 超碰狠狠操| 无码少妇高潮喷水A片免费| 国产av一区二区三区| 五月天婷婷激情六月久久| 91主播在线| 伊人网碰碰| 日日操夜夜操狠狠操| 亚洲激情视频网| 99re鈥哸鈥唙| 丁香五月色| 国产性爱在线| 综合99综合久久久久久久| 99久久99视频只有精品| 丁香五月天视频在线播放| 亚洲精品色| 久久五月天婷婷| 热思思九九| 一区三区视频有限公司| 五月天天丁香婷婷在线中| 99热中国| 日韩另类| 亚洲一区二区无遮挡A片| 日本色频| 亚洲操操操| 天天干天天拍| 9久久久| 天天操夜夜啊| 超碰人人操| 亚洲成av人影院| 色蜜婷婷| 丁香婷婷在线| 99综合免费视频| 九九精品9| 久久五月婷| 26uuu欧美宗合| 丁香九月激情| 久久 中文 日本| 天天爱天天日| 激情久久久久| 深爱五月婷| 久久婷婷亚洲| 激情丁香久久| 日日狠夜夜狠| 激情六月婷婷| 激情另类综合| 免费视频99| 99噜噜噜在线播放| 五月婷婷在线丁香| 九九热中文| 操逼棍操逼| 色九九综合| 亚州操操| 天天爽天天| 婷色影院| 免费观看的AV| 欧美性生交XXXXX无码小说| 伊人网大香| 免费五月婷婷网| 疯狂做受XXXX高潮A片动画| 激情黄色小说色五月| 五月天六月婷婷| 97色干在线观看| 国产片天天爽夜夜爽| 亚洲视频操| 《丁香激情综合久久伊人久久》影视在线观看 -高清预告手机免费播放 -三妹影院 | 九热免费视频| 91九色欧美| 欧亚中文A V| 99er视频在线| 99精品综合| 伊人丁香婷婷东京| 亚洲网站观看视频| 5月婷婷激情6月| 六月丁丁香| 九月丁香婷婷综合激情| 狠狠狠狠狠干| 综合激情五月丁香9999久久精| 婷婷综合久久| AV激情五月| 超碰免费在线| 五月丁香在线视频观看| 女人高潮内射99精品| 99热这里只有99| 婷婷五月天AV| 99久久这里只有精品免费官网| 婷婷六月色| 色欲人妻综合aaaaaaaa网| 激情五月天在线视频| 91精品无码| 91狠狠色丁香婷婷综合久久精品| 四色综合网| 激情综合色| 性婷婷| 日99网站| 草综合14| 丁香六月综合激情| 国产做爰视频免费播放| 四色AVwww| 色五月婷婷天堂| 超碰99热精品| 天天做天天爱天天搞| 丁香六月婷婷久久综合| 伊人久久丁香婷婷六月五月综合| 中文在线成人| 色情成人五月天| 免费99情趣网视频| 综合久久六月| 天天插天天插天天插天天插| 深爱丁香激情| 九久久精品视频99| 91久久久久久| 无码人妻一区| 狠狠搞五月天| 久久99网| 九九视频这里只有精品| 中文字幕 久久9999| 丁香综合久久| 99成人在线观看| 激情九九综合网| 91丨九色丨熟女丰满| 久99热| 色丁香影院| 亚洲无码另类| 激情六月婷婷啪啪| 91九色|疯狂|高潮|对白|| 免费AV黄在线播放| 久久人五月| 啪啪啪大香蕉| 六月婷婷色色色| 婷婷五月天va| 婷婷射丁香| 国产AV影片| 91狠狠综合网| 五月天社区狠狠| 91久久久久久| 久久久精品99| 99视频在线观看地址| 狠狠爱五月婷婷| 五月色欧美| 激情丁香六月| 色黄啪啪| 国产欧美性成人精品午夜| 99热资源在线| 丁香婷婷十月| 婷婷舔| 996热re视频精品视频| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 五月婷婷和六月| 熟女网站久久| 伊人五月天久久| 欧美电影在线播放| 亚洲丁香花色| 激情无码网| 日本五月视频| 先锋资源996| 草草视频91| 国产九九一区二区三区| 婷婷综合在线网| 免费看欧美成人A片无码| 99干视频| AV成人在线播放| 99久久免费精品| 国产午夜精品一区二区三区四区| 婷婷五月天堂| 大香线蕉伊人| 欧美狠狠色| 六月婷婷久久大全| 亚州精品久久久久AV无码| 美女天天久久| 婷婷欧美色| 青青热视频| 亚洲综合九九| 五月婷婷激情综合| 99福利导航| 婷婷九月在线| 亚洲熟妇无码乱子AV电影| 人草人人| 日本操B视频| 99热这里只有精品最新网址| 色人妻五月| 五月丁香激情深爱婷婷| 色五月婷婷久久大| 狠色狠色综合久久| 色综合色综合色综合| 丁香五月色情| 亚洲色激情| 日日日日操| 老司机伊人| 色播播婷婷| 99爱在线视频| 99在线视频精品| WWW.99热| 人妻久久久久久| 少妇熟女视频一区二区三区| 日韩av变天就操逼不卡区| 亚洲三A| 午夜在线成人网站免费观看| 久久日曰| 久久性刺激| 九九色图| 开心婷婷五月天电影院| 中文字幕 久久9999| 深爱1激情网| 天天日天天摸| 超碰人人操人人干| 九九碰九九爱97超碰| 91人在线观看| 大香蕉懂9| 婷婷六月色| av网址在线| 欧美操人| 欧在线一区| 欧美在线视频免费播放| 欧美天天草人人草| 森林影视大全,最好看的2019年视频 | 九九婷婷五月天影视| 亚洲情a| 天天干天天爽| 丁香六月婷婷| 婷婷天堂综合网| 天天综合五月| AV 3P| 色欲一二三| 欧美色婷婷| 蜜乳av一级av| 欧美色久| 综合久久激情久久| 欧美天堂久久| 亚洲免费视频网站| 色婷婷手机在线| 六月婷婷影院| 五月丁香福利| 日本三级第一页| 六月丁香综合| 久久人妻在线| 婷婷五月色天| 99热99天堂| 安息电影在线观看完整版| 国产午夜一区二区三区| 99热只有| 日韩在线观看亚洲| 婷婷五月开心中文字幕在线| 色婷操逼| 另类图片五月天激情| 99色综合| 五月天婷婷综合网| 五月婷婷啪啪啪啪| 26uuu视频欧美| 操骚货在线| AAA级久久久精品| 97热视频| 欧美色图天堂网色| WWW.开心五月天.COM| 99热.com| 操人久久| 五月丁香亚洲综合| 久久久国产精品黄毛片 | 国产成人网址| 欧美网站视频4399| 丁香六月天之亚州热女| 中文字幕丰满孑伦无码专区| 99精品自拍| 欧美综合激情丁香五月六月婷| 无码成人AAAAA毛片AI换脸| 色婷婷久久久| 开心五月婷婷| 伊人影院久久网| 五月婷无码| 亚洲色视频| 久久精品99久久久久久| 日本色色色| 大香蕉久久综合网| 五月天激情Av| 欧美大片| 女人天堂av| 婷婷久热| 精品一二三区视频立| 超碰人人操人人干| 色综合中文| 日本色爽| 亚洲激情五月| 99热免费看| 99操网站| 五月天婷婷影院影院观看| 91se视频| 99精品无码网站| 激情内射人妻1区2区3区| 欧美色色色色色色色色色色影视| 久久99网| 久久久久婷婷五月热综合| 婷婷99狠狠| 欧美极品999| 五月天激情综合| 激情色中文| 色婷婷六月| 狠狠va| BBWCUCKOLD精品熟妇| 五月社区婷婷激情| 伊人大综合| 99成人精品视频| 九月av在线| 亚洲五月天激情| 色9月| 久操大香蕉| 久久机热这里只有精品免费视频 | 99精品超在线播放| 五月婷婷激情性爱| 天天五月丁香五月| 亚州美女| 99热在线免费| 激情综合网激情五月天| 五月丁香啪啪| 天天射影院| 亚洲欧州色情在线观看| 综合网狠狠| 久久六月天| 欧美久草在线日本一级特黄大片做受9在线观看韩国电影《两个女人》未删减-毛片 | 深爱激情婷| 91网站黄| 丁香五月大香蕉| 久热这里只有精品66| 色五月色五天色情网址| 内射综合网| 99爱免费在线观看| www.韩日视频| 五月色网| 人人做人人看人人摸| 伊人久久大香天蕉亚洲特级| 五月天社区| 久久99色色| 久久精品91视频| 狠狠色丁香婷婷基地| 亚洲天堂色| 亚洲在线操| 狠狠干2007| 中文字幕第四色.999| 天天日,天天插| 丁香婷婷伊人| 久激情网| 91丨九色丨首页| 99操碰| 丁香五月婷婷激情中文| 9l视频自拍9l九色成人| 色色色九九九五月婷婷| 婷婷色情网| 伊人婷婷五月| 亚洲中文字幕av| 亚洲一区二区色图-亚洲精品国产精品乱码-成人AV | 九九视频在线观看视频6| 色婷婷久久综合久色综| 夜夜涩涩涩| 99日本视频| 99精品成人无码A片观看金桔| 亚洲中文乱字字幕在线永久| 国产精品久久在线观看技巧| www. 五月. com| 六月婷婷激情| 久久激情五月婷婷| 开心五月综合| 天天插天天插天天日| 欧美啪啪网| www.99热国产| 激情五月天电影| 亚洲激情综合| 人人摸人人干人人做| 久久视这里只有精品| 日本视频欧美观看免费| 日韩一区二区A片免费观看| 丁香六月激情| 五月色综合网| 少妇人妻凹凸视频| xxxx五月激情| 激情五月综合网最新| 另类国产欧美视频| 成熟妇人A片免费看网站| 99热99色| 丁香五月人妻| 六月丁香婷婷大香蕉| 综合aV在线| 狠狠操综合| 婷婷91| 婷婷五月天小说| 日日日日操| 色五月开心开心五月激情五月| 五月婷婷丁香啪啪| 九月婷婷久久久| 日本久久爽| 91丨九色丨老农村| 新男人天堂人妻| 一本色道久久综合狠狠躁一二三| BBWCUCKOLD精品熟妇| 色情五月婷婷| www.狠狠操| 激情丁香五月婷婷| 深爱激情五月网| 色色色色色综合| 激情小说五月天| 亚洲激情av| 久久久久9| 4399在线日本A片| 99热99精品| 亚洲乱码在线观看| 丁香六月久久| 国产67194| 激情综合网五月激情| 激情小说五月天| 91蜜桃婷婷狠狠久久综合9色| 91碰视频| 激情五月天小说网| 人妻久久久久久| 欧美性猛交99久久久久99按摩| 精品人妻伦九区久久AAA片| 99热| 久草丁香婷婷1024| 影音先锋AV男人站| 色综合色色色色| 丁香久久综合| 超碰人人干| 欧美狠狠一在草| www..com色爱| 天天爽天天摸| 丁香激情五月天| 97中文在线| 成人av免费观看| www。久久久久一b。Cc| 天天综合网~91| 天天色天天| 夜夜资源站| 五月激情影院| 久久艹 五月天| www色哟哟| 91色逼| 婷婷五月丁香影院| 色久激情在线| 天天日日夜夜| 激情第四色| 曰韩五月丁香色婷婷无码| 丁香五月 无码| 久久刺激网| 久草久青福利| 久久视频这里有精品99| 色一情一乱一乱一区91| 丁香六月婷婷| 久久久九九九 99| 大香蕉九九| 射久久丁香五月| 五月天丁香综合久久国产| 99久久99久久综合| 亚洲成人av在线观看| 九色91美女| 狠狠人妻久久久久久综合丁香| 天天狠狠夜夜狠狠2023| 五月天成人小说| 9热在线| 激情久久五月天| 色综合久久久久久久久五月| 黄色成人网站在线播放| 免看黄大片AA | 啪啪黄页网| 天堂五月婷婷| 九九亚洲综合| 老师高潮流白浆喷水的A片| 九九热啪啪| 色狠狠色狠狠| 色婷婷亚洲精品天天综| 亚洲AV日韩AV永久无码网站| 成人av免费观看| 婷婷色情五月| 婷婷五月在线视频| av操一操| 丁香五月综合在线播放| 91九色网| 亚州精品成人片| 视色网在线播放| 91狠狠综合网| 热久久这里只有三级视频| 丁香 婷婷 激情 综合 五月 | 九九热精品99| 91黄色五月天视频| 婷婷激情五月天激情在线| 六月丁香五月婷婷| 婷婷综合九色伊人| 亚洲五月天第一综合干| 69色婷婷| 久久综合最新网址| 丁香六月婷婷高清| 怡红院视频| 婷婷久久精品| 婷婷五月天免费视频| 成人亚洲精品久久久久| 丁香五月婷婷六月婷婷| 婷婷的色色五月天| 婷婷激情六月中文| 怡红院院在线导航网| 91九色精品熟女内射| 婷婷久久图片| 色综合天天天天做夜夜| 99热热热99精品婷婷| 丁香午月AV中文字幕| 青青草tp| 激情视频91| 精品人妻一区| 日日操夜夜操中国无码| 开心五月婷| 色婷婷成人在线| 五月丁香婷婷欧美| 色婷网| 97精品在线| 九九九九九九毛片| 六月婷婷五月天| 丁香五月久久| 内射干少妇亚洲69XXX| 91蜜桃婷婷狠狠久久综合9色| 色婷狠狠| 五月激情小说网| 色色色视频免费无码| 综合色五月天| 色综合婷婷| 亚洲亚洲人成综合网络| 天天做天天爱天天高潮| 天天干天天做| 五月丁香亭亭电影久久| 欧美搡BBBBB摔BBBBB| 无码AV免费精品一区二区三区| 狠狠CAO日日穞夜夜穞AV | 7777久久亚洲中文字幕| 国产乱人偷精品人妻A片| 免费看欧美成人A片无码| 久久66er久久| 九九无码| 婷婷五月 丁香六月| 9久热| 99re这里只有精品国产99| 九九热视频在线观看| 色的色综合| 成人综合视频网址| 大地资源色婷婷视频在线| 波多野结衣不卡AV| 五月丁香六月婷婷在线观看| 亚洲AV另类| 五月丁香六月激情综合| 日本色婷婷| 欧美这里只有精品| 婷婷亚洲激情在线观看视频 | 亚州色色色| 天天综合久久| 久久99综合| 婷婷五六日| 就爱日五月天| 开心激情综合| 五月天婷婷基地| 丁香六月综合激情| 五月激情基地| 久久天堂加勒比| 人妻熟妇国产精品| 亚洲亚洲激情| 色爱爱综合网| 五月婷婷影| 五月天色播网| 久久久.www| 变态另类9| 凹凸探花电影| 激情婷婷五月综合| 九九久久99| 天天综合色综合| 久热精品在看| 夜夜撸日日操| 天天爽天天做| 色色丁香五月天| 97在线观视频免费观看| 99这里有精品| 九九视频精品这里只有| 五月丁香婷婷老司机| www.久久爱| 五月综合六月婷婷| 99九九99九九九视频精彩| 欧美成人AAA片一区国产精品| 五月婷婷啪| 色五月丁香六月资源站| 国产高清视频91九九九久久久| PORNY九色9l自拍视频成人| 婷色成人| 亚洲av日韩无码| 日韩性爱AV| 久久92| 一区二区三区四区无码| 草一草avb| 啪啪视频99| 成人丁香五月| 日本狠狠干| 天天久久综合| 大香蕉精品视频| 九九色婷婷Av| 天天插天天射| 99超级碰碰| 天天做天天爱天天玩夜夜爽| 久热久| 色五月,婷婷大香蕉| 99热这里有精品| 九九九九综合| 激情综合激情五月一起草| Av性爱网站| 色情婷婷。| www。五月,com| 啪啪综合网| 91操熟女| 激情综合网五月激情| 就99这里只有精品| 9久视频| CAoub青青超碰| 丁香婷婷成年| 精品一二三区久久AAA片| 色五月婷婷综合| 日韩AAAAAAAAAAA片| 一区二区成人电影免费播放| 久久婷婷色| 开心五月天激情网| www.丁香五月| 五月婷婷六月激情网| 色频玖玖五月天| 99在线观看视频| AAA久久久AAA久久久AAA| 涩丁香91| 九九色婷| 日韩一本操| 思思久久99热只有频精品66| 四色永久成人网站| 婷婷久久五月天丁香| 丁香五月香蕉| 色狠久| 色狠狠色噜噜噜a天堂一区| 五月天开心色情网| 亚洲色激婷| 五月婷婷亚洲天堂激情在线| 五月婷久久| 97人人操在线| 亚洲一区国产传媒| 激情中文在线| 99热99美国在线观看| 无码色综合| 琪琪色影音先锋| 9热在线视频| 色色色色色五月| 伊人五月婷婷国产视频| yazhochengrenavwang| 激情文学 综合 九月| 丁香狠狠色婷婷久久无码视频| 丁香婷婷老熟女综合网| www.99精品日操伊人乱碰在线| 五月天亚洲综合网| 天天狠狠六月婷丁香影院| 婷婷五月天香蕉| 五月天综合婷婷| 99网| 久久Xx| 久99| 五月丁香亭亭| 超碰婷婷色| 91人人看| 久久人操-久草婷婷-成人AV| 另类亚洲视频| 激情婷婷在线中文字幕| 婷婷久久五月| 人妻内射麻豆视频| 久久一二三视频| 狠狠做深爱婷婷久久综合一区| 日本婷色| www.色婷婷| 五月色综合| 久久人人添人人爽添人人片αV| 91久久久久| 小泽玛利亚视频一区二区| 亚洲网站999| 天天日天天添| 丁香婷五月| 深爱五月激情| 久久性爱视频| 8090在线影视少妇| 99精品久| 粉嫩av蜜桃av蜜臀av| 99爱这里只有精品| 99日韩网站| 综合激情在线视频| 噜噜在线| 97丁香视频| 婷婷综合激情| 婷婷六月色情| 91超级碰人人操| 狠狠色噜噜狠狠狠狠综合| 天天AV导航网| 婷婷五月天中文字幕| 色色色色色色色色五月先| 亚洲日韩乱码一区二区三区四区| 久久99免费视频网站| www.婷婷五月天.com| 丁香综合伊人AV| 婷婷色导航| 狠狠狠狠狠干| 丁香五月激情欧美| WWW·天天操·视频?| 99九九精品视频| 色五月色五天色情网| 亚洲电影在线观看| 日本在线99| 伊人天天色| 日本久久精品18| 国产精品扒开腿做爽爽爽A片唱戏| 婷婷五月丁香激情图片| 婷五月丁香俺| 五月开心久久| 狠狠精品干练久久久无码中文字幕| 中文字幕婷婷在线| 丁香色六月婷婷| 五月婷婷丁香五月 | 婷婷婷婷色| 久久久久9999| 99超碰人人| 人人综合五月人人婷婷| 婷婷精品免费久久| 啪啪视频99| 色波激情五月天| 丁香五月婷婷大香蕉| 男人先锋久久| 97色色色色| www.激情| 中文字幕不卡网站| 五月丁香综合激情在线观看| 色色色综合| 天天干天天日蜜臀av| 天天爽夜夜爽夜夜爽精品| 五月婷婷中文字幕AV| 色综啪啪网| 久久丁香婷婷五月天| 9l视频自拍9l九色9l成人| 色色丁香婷婷五月天| 五月丁香999| 能看的av网站| 五月丁香久久久久| www.99视频| 婷婷五月丁香综合网| 丁香 婷婷五月| WWW,五月| 97精品在线| 婷婷五月天伊人| 色婷婷播放| 开心五月综合激情综合五月| 五月丁香六月婷| 五月丁香福利| 91.com男女操| 日韩无码系列| 色五月婷婷青娱乐| WWW.开心五月天.COM| 五月天精品| 只有精品视频在线观看| 91成人品| 玖玖爱综合网| 日本在线视频播放91| CAoub青青超碰| 婷婷激情视频欧美视频自拍视频欧美剧| 久久艹 五月天| 天天日人人| 久久综合五月天| 99热这里只有在线播放| 无码99| 五月丁香综合啪啪啪啪啪| 天天激情站| 五月婷婷在线短视频| 国产色色视频| 久久久久婷婷五月热综合| 婷婷激情五月| 开心婷婷中文字慕| 色五月婷婷五月| 丁香六月 婷婷六月| 噼里啪啦在线观看免费完整版视频| 亚洲第一色色色|