久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

VBA實戰(zhàn)指南:玩轉(zhuǎn)Excel教務(wù)掛科統(tǒng)計與自動化報表生成

VBA實戰(zhàn)指南:玩轉(zhuǎn)Excel教務(wù)掛科統(tǒng)計與自動化報表生成 1. 項目背景為什么教務(wù)數(shù)據(jù)要用VBA來處理高校教務(wù)管理里掛科數(shù)據(jù)統(tǒng)計是非常高頻的一項工作。學(xué)期末考試結(jié)束各科成績出來教務(wù)員或者輔導(dǎo)員需要回答一系列問題每個班掛了幾科哪個科目掛科率最高哪些學(xué)生掛科超過三門需要預(yù)警重修名單怎么生成這些問題看起來簡單但當(dāng)學(xué)生數(shù)量上千、科目幾十門、數(shù)據(jù)分散在多個Excel文件里的時候手工處理就變得極其痛苦。我第一次接到這個需求是在某高校期末階段。對方拿來的原始數(shù)據(jù)是一張全校成績總表大概四千多行每行是一個學(xué)生的某一門課程成績字段包括學(xué)號、姓名、班級、課程名稱、學(xué)分、成績。需求也很直接掛科名單、掛科率統(tǒng)計、分?jǐn)?shù)段分布、以及預(yù)警名單掛科超過兩門的要單獨列出來。說實話這些需求用Excel自帶的數(shù)據(jù)透視表和篩選功能也能做一部分但涉及到多條判定規(guī)則、跨科目統(tǒng)計、批量格式化和生成多個報表還是VBA更合適。寫這篇博文就是把這套處理掛科數(shù)據(jù)的完整思路和代碼實戰(zhàn)過程拆開來講。從數(shù)據(jù)清洗、掛科判定、按科目統(tǒng)計、按學(xué)生聚合、生成預(yù)警名單到最后的報表自動排版每一步都給出可以直接復(fù)用的方案。適合輔導(dǎo)員、教務(wù)員、教學(xué)秘書以及任何處理過這類考核數(shù)據(jù)的辦公人員參考。如果你只會Excel的基礎(chǔ)操作這篇文章會告訴你VBA處理批量數(shù)據(jù)的基本套路如果你已經(jīng)有點VBA基礎(chǔ)也可以從中找到一些邊界情況處理和代碼組織的方法。2. 項目整體設(shè)計與思路拆解2.1 先搞清楚數(shù)據(jù)長什么樣拿到數(shù)據(jù)的第一步不是寫代碼而是觀察數(shù)據(jù)。我用的是某高校模擬項目X的成績總表字段和真實教務(wù)系統(tǒng)導(dǎo)出的格式基本一致。以下是原始數(shù)據(jù)的一個簡化樣例學(xué)號姓名班級課程名稱學(xué)分成績20230101張某計科2301高等數(shù)學(xué)55820230101張某計科2301大學(xué)英語37120230102李某計科2301高等數(shù)學(xué)56220230102李某計科2301線性代數(shù)34320230102李某計科2301大學(xué)英語355仔細觀察有幾個關(guān)鍵點決定了后續(xù)代碼怎么寫一行為一個學(xué)生的一門課成績所以一個學(xué)生占用多行數(shù)據(jù)。按學(xué)生聚合統(tǒng)計掛科門數(shù)就不能用簡單的篩選而是需要按學(xué)號分組。成績字段的格式可能不統(tǒng)一有的單元格是文本類型有的看起來是數(shù)字但其實是缺考或緩考字樣。這種臟數(shù)據(jù)必須先清洗。掛科的判定線和課程學(xué)分有關(guān)不同學(xué)??赡苡兴煌S械膶W(xué)校60分及格有的課程按五級制優(yōu)、良、中、及格、不及格這些都要在寫代碼前問清楚。2.2 方案選型為什么不用公式和透視表在處理這類數(shù)據(jù)時很多人第一反應(yīng)是用COUNTIFS加IF嵌套不就行了。確實如果只需要統(tǒng)計個掛科人數(shù)公式完全可以勝任。但這套需求里有一個場景是公式不太好處理的判斷每個學(xué)生掛科是否超過兩門并把超過兩門的學(xué)生自動歸入預(yù)警名單。這樣做是可行的但操作相對繁瑣需要在輔助列里拉公式再對結(jié)果做二次篩選。根本的問題在于公式方案是靜態(tài)的。數(shù)據(jù)源一旦更新比如補考成績錄入、緩考學(xué)生決定參加考試所有統(tǒng)計結(jié)果都得跟著改輔助列里的公式范圍需要重新調(diào)整生成的報表還得手工重建。VBA方案是動態(tài)的原始數(shù)據(jù)放在Sheet1運行一次宏自動在Sheet2生成掛科名單Sheet3生成科目掛科率統(tǒng)計Sheet4生成預(yù)警名單。下次數(shù)據(jù)更新了再運行一次就行所有流程完全自動化。還有一個原因是邏輯可維護性。把代碼讀一遍就知道成績小于60且不為空算掛科缺考標(biāo)記為-1也按掛科處理掛科超過2門預(yù)警這些規(guī)則寫在哪里。對后接手的人來說理解一套VBA代碼并修改規(guī)則比在一大堆嵌套公式里翻找要容易得多。2.3 整體處理流程梳理整個方案分成五個階段數(shù)據(jù)清洗、基本校驗、掛科判定與統(tǒng)計、學(xué)生維度聚合、報表生成。每個階段相對獨立便于單獨測試和調(diào)試。第一階段規(guī)范成績字段——把文本數(shù)字轉(zhuǎn)成數(shù)值、識別特殊標(biāo)記、剔除無效行。第二階段檢查有沒有缺失關(guān)鍵字段的行比如學(xué)號為空的學(xué)生記錄直接跳過。第三階段遍歷所有成績記錄按課程名稱統(tǒng)計考試人數(shù)、掛科人數(shù)、掛科率同時輸出每條掛科記錄到名單表。第四階段再遍歷一次或者復(fù)用前面收集的數(shù)據(jù)按學(xué)號匯總每個學(xué)生的掛科門數(shù)生成預(yù)警名單。第五階段用VBA控制格式設(shè)置邊框、列寬、單元格顏色把掛科率高和預(yù)警級別高的信息突出顯示。3. 核心邏輯與關(guān)鍵代碼實現(xiàn)3.1 字典對象跨行聚合的利器做學(xué)生維度的掛科統(tǒng)計時最常用的技巧是使用VBA的Dictionary字典對象。它類似于哈希表可以按學(xué)號存儲一個學(xué)生的累計掛科門數(shù)。遍歷成績記錄時每遇到一條掛科記錄就在字典里把對應(yīng)學(xué)號的計數(shù)加1。最后把需要預(yù)警的學(xué)生計數(shù)值大于2輸出到名單表。Dim dict As Object Set dict CreateObject(Scripting.Dictionary) 遍歷成績數(shù)據(jù)統(tǒng)計每個學(xué)生掛科數(shù)量 For i 2 To lastRow scoreVal Trim(CStr(ws.Cells(i, 6).Value)) 成績列 stuID Trim(CStr(ws.Cells(i, 1).Value)) 學(xué)號列 判斷是否掛科成績?yōu)閿?shù)字且小于60或包含缺考等標(biāo)記 If IsNumeric(scoreVal) Then If CDbl(scoreVal) 60 Then If dict.Exists(stuID) Then dict(stuID) dict(stuID) 1 Else dict(stuID) 1 End If End If ElseIf InStr(scoreVal, 缺考) 0 Or InStr(scoreVal, 緩考) 0 Then If dict.Exists(stuID) Then dict(stuID) dict(stuID) 1 Else dict(stuID) 1 End If End If Next i這段代碼并不復(fù)雜卻解決了最關(guān)鍵的按學(xué)生聚合問題。成績總表里同一個學(xué)生出現(xiàn)多行如果不想辦法聚合就沒法判斷掛科超過兩門。字典在這種場景下的處理思路值得反復(fù)參考。建議在處理學(xué)生數(shù)據(jù)時先想清楚需要按哪個維度聚合這個維度是否適合作為字典的Key。3.2 成績數(shù)據(jù)的邊界情況處理成績數(shù)據(jù)遠沒有想象的那么干凈這是我在實際處理中遇到最多坑的地方。真實數(shù)據(jù)里常見的情況包括成績單元格顯示為缺考或緩考。這類情況通常要按掛科處理因為學(xué)生沒有成績。成績?yōu)榭盏膯卧?。不能簡單判斷為掛科需要先和對方確認(rèn)空值含義。在我的模擬項目X數(shù)據(jù)里空值表示該學(xué)生本學(xué)期沒有選修這門課屬于無效記錄應(yīng)當(dāng)跳過。成績是文本格式的數(shù)字比如單元格左上角有個綠色小三角。直接比較會導(dǎo)致類型不匹配報錯需要先用IsNumeric判斷。成績包含具體分值但帶備注比如55作弊。這種數(shù)據(jù)格式不統(tǒng)一要么在數(shù)據(jù)源頭規(guī)范要么在代碼里做截取處理。我的建議是在VBA代碼里先做一個數(shù)據(jù)清洗模塊統(tǒng)一處理這些情況。這樣主邏輯里的成績判斷就不用到處處理異常代碼也更清晰。寫一個獨立函數(shù)來判斷這條記錄是否為掛科把所有邊界情況封裝進去Function IsFail(scoreCell As Range) As Boolean Dim raw As String raw Trim(CStr(scoreCell.Value)) 空值不算掛科視為無效記錄 If raw Then IsFail False Exit Function End If 缺考或緩考視為掛科 If InStr(raw, 缺考) 0 Or InStr(raw, 緩考) 0 Then IsFail True Exit Function End If 純數(shù)字小于60算掛科 If IsNumeric(raw) Then IsFail (CDbl(raw) 60) Exit Function End If 其他文本標(biāo)記按非掛科處理 IsFail False End Function注意掛科判定線60分是我在模擬項目X中使用的規(guī)則。實際部署時這個臨界值應(yīng)該定義成常量或者放在配置單元格里方便不同院系按各自規(guī)則調(diào)整。3.3 按科目的掛科率統(tǒng)計科目維度的統(tǒng)計相對直接遍歷所有成績記錄按課程名稱分組記錄兩個數(shù)字——考試人數(shù)和掛科人數(shù)。考試人數(shù)指該課程有效成績記錄數(shù)排除空值掛科人數(shù)是其中判定為掛科的記錄數(shù)。掛科率就是兩者之比。這個統(tǒng)計邏輯用字典也能實現(xiàn)但字典存的值是數(shù)組會有些別扭。更穩(wěn)妥的方式是直接在內(nèi)存里維護兩個字典一個存考試人數(shù)一個存掛科人數(shù)。遍歷結(jié)束后再合并輸出?;蛘哂酶匀坏姆绞健葎討B(tài)收集所有課程名稱到字典A中第二次遍歷時按課程統(tǒng)計。我在實踐里更喜歡用Collection或字典來維護課程列表因為課程名稱不一定在原始數(shù)據(jù)里有現(xiàn)成的枚舉清單。你無法提前知道全校開了多少門課動態(tài)收集才是正解。以下是用字典統(tǒng)計科目掛科率的核心邏輯Dim examCount As Object, failCount As Object Set examCount CreateObject(Scripting.Dictionary) Set failCount CreateObject(Scripting.Dictionary) For i 2 To lastRow courseName Trim(CStr(ws.Cells(i, 4).Value)) If courseName Then GoTo NextRow 有效成績記錄計入考試人數(shù) If examCount.Exists(courseName) Then examCount(courseName) examCount(courseName) 1 Else examCount(courseName) 1 End If 掛科記錄計入掛科人數(shù) If IsFail(ws.Cells(i, 6)) Then If failCount.Exists(courseName) Then failCount(courseName) failCount(courseName) 1 Else failCount(courseName) 1 End If End If NextRow: Next i統(tǒng)計完成后遍歷examCount字典把課程名稱、考試人數(shù)、掛科人數(shù)、掛科率逐行寫入輸出表。掛科率保留一位小數(shù)或百分比形式同時用條件格式把掛科率超過20%的科目標(biāo)紅方便快速定位問題課程。3.4 多字段核心判斷組合掛科數(shù)據(jù)處理中有一個容易忽略的點同一個學(xué)生某一門課掛科了但在另一門課里是緩考緩考雖然也算掛科但定義略有不同。比如學(xué)??赡苡幸?guī)則緩考學(xué)生可以直接參加補考不占用掛科名額也不會進入學(xué)業(yè)預(yù)警名單。這種細微差別落到代碼里就是一個布爾變量的調(diào)整。我的經(jīng)驗是把是否掛科和是否計入預(yù)警拆成兩個獨立的判斷函數(shù)。掛科名單里包含缺考和緩考但預(yù)警名單只考慮成績60的真實不及格。這樣代碼雖然多了一個函數(shù)但語義清晰也方便應(yīng)對不同院系的不同規(guī)則。Function IsWarningFail(scoreCell As Range) As Boolean Dim raw As String raw Trim(CStr(scoreCell.Value)) 只有純數(shù)字且小于60才計入預(yù)警 If IsNumeric(raw) Then IsWarningFail (CDbl(raw) 60) Else IsWarningFail False End If End Function這種把規(guī)則拆解到函數(shù)級別的寫法是我在多次處理績效數(shù)據(jù)的過程中逐漸養(yǎng)成的習(xí)慣。一次性把所有邏輯寫在一個事件處理程序里看起來省事但后期要調(diào)整一個規(guī)則時改動影響范圍會比較大容易顧此失彼。4. 完整實操流程與報表生成4.1 環(huán)境準(zhǔn)備與數(shù)據(jù)約定實際操作前先約定輸入輸出格式。我用一個獨立的工作簿來處理這類數(shù)據(jù)文件里通常包含四個工作表原始數(shù)據(jù)、掛科名單、科目統(tǒng)計、預(yù)警名單。輸入數(shù)據(jù)固定在原始數(shù)據(jù)表中運行宏后會清空其他三個表并重新填充內(nèi)容。在寫代碼前先確認(rèn)幾個約定成績在原始數(shù)據(jù)表的第6列F列表頭行是第1行。學(xué)號在第1列姓名第2列班級第3列課程名稱第4列學(xué)分第5列。所有列的數(shù)據(jù)都不允許包含合并單元格如果原始導(dǎo)出文件里有合并單元格先用Excel取消合并并填充。提示在模擬項目X的實際操作中出現(xiàn)過原始數(shù)據(jù)用Excel公式生成導(dǎo)致部分單元格值為0但公式未計算的情況。建議拿到數(shù)據(jù)后先做一次粘貼為值處理再進入VBA流程。4.2 主流程代碼結(jié)構(gòu)整個宏的主體結(jié)構(gòu)如下包含了數(shù)據(jù)清洗、校驗、統(tǒng)計、輸出四個環(huán)節(jié)并結(jié)合輸入標(biāo)題VBA實戰(zhàn)案例處理掛科數(shù)據(jù)的全部需求點。該主過程采用模塊化的設(shè)計方便按需裁剪或調(diào)試。Sub ProcessFailData() Dim wsData As Worksheet, wsFail As Worksheet, wsStat As Worksheet, wsWarn As Worksheet Set wsData ThisWorkbook.Sheets(原始數(shù)據(jù)) Set wsFail ThisWorkbook.Sheets(掛科名單) Set wsStat ThisWorkbook.Sheets(科目統(tǒng)計) Set wsWarn ThisWorkbook.Sheets(預(yù)警名單) Dim lastRow As Long lastRow wsData.Cells(wsData.Rows.Count, 1).End(xlUp).Row If lastRow 2 Then MsgBox 原始數(shù)據(jù)為空請檢查數(shù)據(jù)表。 Exit Sub End If 清空輸出表舊數(shù)據(jù)保留表頭 ClearOutputSheets wsFail, wsStat, wsWarn 第一階段遍歷并過濾寫入掛科名單 Dim i As Long Dim failRow As Long, statRow As Long, warnRow As Long failRow 2 statRow 2 warnRow 2 Dim dictStu As Object, dictExam As Object, dictFail As Object Set dictStu CreateObject(Scripting.Dictionary) Set dictExam CreateObject(Scripting.Dictionary) Set dictFail CreateObject(Scripting.Dictionary) For i 2 To lastRow 跳過無效記錄學(xué)號為空或姓名為空 Dim stuID As String, stuName As String stuID Trim(CStr(wsData.Cells(i, 1).Value)) stuName Trim(CStr(wsData.Cells(i, 2).Value)) If stuID Or stuName Then GoTo ContinueLoop Dim courseName As String, scoreCell As Range courseName Trim(CStr(wsData.Cells(i, 4).Value)) Set scoreCell wsData.Cells(i, 6) 科目考試人數(shù)統(tǒng)計 If examCountExist(dictExam, courseName) Then dictExam(courseName) dictExam(courseName) 1 Else dictExam(courseName) 1 End If 判斷掛科寫入掛科名單表 If IsFail(scoreCell) Then 寫入掛科名單 wsFail.Cells(failRow, 1).Value stuID wsFail.Cells(failRow, 2).Value stuName wsFail.Cells(failRow, 3).Value wsData.Cells(i, 3).Value wsFail.Cells(failRow, 4).Value courseName wsFail.Cells(failRow, 5).Value wsData.Cells(i, 5).Value wsFail.Cells(failRow, 6).Value scoreCell.Value failRow failRow 1 科目掛科人數(shù)統(tǒng)計 If failCountExist(dictFail, courseName) Then dictFail(courseName) dictFail(courseName) 1 Else dictFail(courseName) 1 End If End If 按學(xué)生聚合預(yù)警計數(shù)僅真實不及格 If IsWarningFail(scoreCell) Then If dictStu.Exists(stuID) Then dictStu(stuID) dictStu(stuID) 1 Else dictStu(stuID) 1 End If End If ContinueLoop: Next i 輸出科目統(tǒng)計 Dim key As Variant For Each key In dictExam.Keys wsStat.Cells(statRow, 1).Value key wsStat.Cells(statRow, 2).Value dictExam(key) If dictFail.Exists(key) Then wsStat.Cells(statRow, 3).Value dictFail(key) wsStat.Cells(statRow, 4).Value Format(dictFail(key) / dictExam(key), 0.0%) Else wsStat.Cells(statRow, 3).Value 0 wsStat.Cells(statRow, 4).Value 0.0% End If statRow statRow 1 Next key 輸出預(yù)警名單 Dim stuIDKey As Variant For Each stuIDKey In dictStu.Keys If dictStu(stuIDKey) 2 Then wsWarn.Cells(warnRow, 1).Value stuIDKey wsWarn.Cells(warnRow, 2).Value GetStudentName(stuIDKey, wsData, lastRow) wsWarn.Cells(warnRow, 3).Value dictStu(stuIDKey) Dim stuClass As String stuClass GetStudentClass(stuIDKey, wsData, lastRow) wsWarn.Cells(warnRow, 4).Value stuClass warnRow warnRow 1 End If Next stuIDKey 格式化輸出表格 FormatOutputSheets wsFail, wsStat, wsWarn MsgBox 處理完成掛科名單 (failRow - 2) 條科目 (statRow - 2) 門預(yù)警 (warnRow - 2) 人。 End Sub寫這段代碼時有一個反復(fù)權(quán)衡的點預(yù)警名單里需要補充學(xué)生的班級信息。若在遍歷成績記錄時把學(xué)號、姓名、班級對應(yīng)關(guān)系存入字典內(nèi)存開銷會明顯增加但訪問速度更快。我在模擬項目X里選擇了單獨寫一個GetStudentName和GetStudentClass函數(shù)每次按需在原始數(shù)據(jù)表里查找。學(xué)生人數(shù)在兩千以內(nèi)時速度尚可如果數(shù)據(jù)量超過一萬行建議換成字典緩存方式。4.3 輔助函數(shù)實現(xiàn)上面主流程中用到了一些輔助函數(shù)這里一并列出來。重點看一下從字典中判斷鍵是否存在的寫法因為這幾段代碼在不同版本的Office里兼容性有細微差別Function examCountExist(dict As Object, key As String) As Boolean On Error Resume Next examCountExist Not IsError(dict(key)) Err.Clear End Function Function failCountExist(dict As Object, key As String) As Boolean On Error Resume Next failCountExist Not IsError(dict(key)) Err.Clear End Function Function GetStudentName(stuID As String, wsData As Worksheet, lastRow As Long) As String Dim i As Long For i 2 To lastRow If Trim(CStr(wsData.Cells(i, 1).Value)) stuID Then GetStudentName wsData.Cells(i, 2).Value Exit Function End If Next i End Function Function GetStudentClass(stuID As String, wsData As Worksheet, lastRow As Long) As String Dim i As Long For i 2 To lastRow If Trim(CStr(wsData.Cells(i, 1).Value)) stuID Then GetStudentClass wsData.Cells(i, 3).Value Exit Function End If Next i End Function補充說明判斷字典中是否存在某個鍵還有一種更標(biāo)準(zhǔn)的寫法是使用字典的Exists方法。上面之所以用錯誤捕獲方式是因為在部分老版本兼容場景下直接調(diào)用Exists對中文鍵的支持有一些量化差異。但如果你用的Office版本較新2016及以上直接用dict.Exists(key)更穩(wěn)妥代碼也更短。實際部署時建議優(yōu)先用Exists方法If Not dictExam.Exists(courseName) Then dictExam.Add courseName, 1 Else dictExam(courseName) dictExam(courseName) 1 End If4.4 報表格式化技巧數(shù)據(jù)統(tǒng)計完成后報表的呈現(xiàn)直接影響使用者閱讀效率。以下這段是格式化輸出的實現(xiàn)重點在于用單元格邊框和顏色把信息分層Sub FormatOutputSheets(wsFail As Worksheet, wsStat As Worksheet, wsWarn As Worksheet) 設(shè)置統(tǒng)一表頭樣式 Dim headerRng As Range Set headerRng wsFail.Range(A1:F1) headerRng.Font.Bold True headerRng.Interior.Color RGB(0, 102, 204) headerRng.Font.Color RGB(255, 255, 255) 掛科名單邊框 Dim lastFailRow As Long lastFailRow wsFail.Cells(wsFail.Rows.Count, 1).End(xlUp).Row If lastFailRow 2 Then wsFail.Range(A2:F lastFailRow).Borders.LineStyle xlContinuous wsFail.Range(A2:F lastFailRow).Borders.Weight xlThin End If 科目統(tǒng)計表掛科率超過20%的標(biāo)記為紅色 Dim lastStatRow As Long lastStatRow wsStat.Cells(wsStat.Rows.Count, 1).End(xlUp).Row For i 2 To lastStatRow Dim rateVal As Double rateVal 0 If IsNumeric(wsStat.Cells(i, 4).Value) Then rateVal CDbl(wsStat.Cells(i, 4).Value) End If If rateVal 0.2 Then wsStat.Cells(i, 4).Font.Color RGB(192, 0, 0) wsStat.Cells(i, 4).Font.Bold True End If Next i 自動調(diào)整列寬 wsFail.Columns(A:F).AutoFit wsStat.Columns(A:D).AutoFit wsWarn.Columns(A:D).AutoFit End Sub格式化時有一個經(jīng)常被忽略的細節(jié)AutoFit對中文表頭有時不夠友好特別是當(dāng)表頭文字較長時自動列寬可能讓單元格顯示不全。遇到這種情況建議單獨給表頭列設(shè)置一個最小寬度值。wsFail.Columns(A).ColumnWidth 12 wsFail.Columns(B).ColumnWidth 10 wsFail.Columns(C).ColumnWidth 144.5 一鍵運行的入口設(shè)計為了讓不熟悉VBA的教務(wù)老師也能方便使用我在工作簿中增加了一個刷新報表按鈕并指定宏為ProcessFailData。這樣使用者只需要在原始數(shù)據(jù)表粘貼新數(shù)據(jù)點擊按鈕所有結(jié)果就自動更新。按鈕的添加方式很簡單開發(fā)工具選項卡中插入表單控件按鈕右鍵指定宏。如果所在的Excel版本不顯示開發(fā)工具選項卡需要在文件-選項-自定義功能區(qū)里勾選開發(fā)工具。這一步驟對于沒有VBA經(jīng)驗的人來說也可能卡住所以我在交接說明里特意寫清楚了路徑。5. 實操過程中遇到的坑與排查技巧5.1 成績列存在隱藏空格導(dǎo)致比較失敗實際處理中碰到過一個很隱晦的問題成績列的值在表面上是58但實際上是58 數(shù)字后面帶空格或者是全角數(shù)字。這些字符在視覺上和半角數(shù)字幾乎一致但CStr轉(zhuǎn)換后參與判斷就會出問題。排查這類問題的最快方式是在VBA代碼里臨時輸出每個成績單元格的ASCII碼。我當(dāng)時用了一個調(diào)試小工具逐格檢查才發(fā)現(xiàn)空格的問題。解決方案是統(tǒng)一用Trim加一個自定義的清理函數(shù)把全角字符轉(zhuǎn)成半角Function CleanStr(text As Variant) As String Dim result As String result Trim(CStr(text)) 全角數(shù)字轉(zhuǎn)半角 Dim i As Integer For i 1 To Len(result) Dim ch As String ch Mid(result, i, 1) If Asc(ch) 65281 And Asc(ch) 65374 Then ch Chr(Asc(ch) - 65248) End If result Left(result, i - 1) ch Right(result, Len(result) - i) Next i CleanStr result End Function全角轉(zhuǎn)半角這段邏輯雖然簡單但它解決了一類非常典型的數(shù)據(jù)導(dǎo)入問題。教務(wù)系統(tǒng)從網(wǎng)頁端導(dǎo)出的數(shù)據(jù)經(jīng)?;烊肴亲址惶幚淼脑捄罄m(xù)的學(xué)號匹配、姓名匹配都可能靜默失敗。5.2 同一課程名稱表述不一致導(dǎo)致統(tǒng)計被拆開教務(wù)數(shù)據(jù)里同一門課在不同老師那里可能表述不同。比如高等數(shù)學(xué)在某些記錄里寫成高數(shù)大學(xué)英語有時寫成英語。這種情況下科目維度的統(tǒng)計會被錯誤地拆分成兩行掛科率算出來也會偏小。解決思路有兩個方向一是在數(shù)據(jù)源頭統(tǒng)一課程名稱找教務(wù)系統(tǒng)重新導(dǎo)出或者在Excel里做一次查找替換二是在VBA代碼里維護一個課程名稱映射表。映射表更適合場景固定、課程數(shù)量有限的情況。我當(dāng)時做了一個Dictionary映射把常見別名歸一化到規(guī)范名稱Dim courseMap As Object Set courseMap CreateObject(Scripting.Dictionary) courseMap.Add 高數(shù), 高等數(shù)學(xué) courseMap.Add 英語, 大學(xué)英語 courseMap.Add 線代, 線性代數(shù)在遍歷數(shù)據(jù)時每讀到一個課程名稱先查映射表若有別名就替換成規(guī)范名再參與統(tǒng)計。這樣做還有個額外好處輸出報表里的課程名稱是統(tǒng)一的不會讓看報表的人產(chǎn)生困惑。5.3 數(shù)據(jù)量增大時性能變慢模擬項目X的初期版本四千多行數(shù)據(jù)跑一次宏大約需要十幾秒主要耗在輸出環(huán)節(jié)和GetStudentName/GetStudentClass的反復(fù)全表查找上。如果每個預(yù)警學(xué)生都要遍歷一次全表性能開銷確實不小。優(yōu)化思路有兩個預(yù)警名單輸出前已經(jīng)知道哪些學(xué)號需要查詢姓名和班級可以邊遍歷邊收集學(xué)生信息而不是最后再查。也就是在第一次遍歷時把每個學(xué)號對應(yīng)的姓名、班級存入字典后面直接取用。關(guān)閉屏幕更新和自動計算。在宏開頭加上Application.ScreenUpdating False和Application.Calculation xlManual宏結(jié)束再恢復(fù)。這段小改動通常能帶來三到五倍的性能提升。Sub ProcessFailData() Application.ScreenUpdating False Application.Calculation xlManual ... 原有邏輯 ... Application.Calculation xlCalculationAutomatic Application.ScreenUpdating True End Sub5.4 常見問題速查問題現(xiàn)象可能原因排查與解決辦法運行宏時提示類型不匹配成績列存在文本或全角字符用CleanStr統(tǒng)一轉(zhuǎn)換數(shù)據(jù)或用IsNumeric先做類型判斷科目統(tǒng)計中同一課程出現(xiàn)兩行課程名稱不統(tǒng)一建立課程別名映射表歸一化名稱后再統(tǒng)計預(yù)警名單漏人判斷函數(shù)沒覆蓋缺考標(biāo)記檢查IsWarningFail邏輯確認(rèn)缺考與真實不及格的區(qū)分規(guī)則輸出表格沒有邊框/顏色格式化代碼未執(zhí)行檢查FormatOutputSheets是否在主流程末尾被調(diào)用數(shù)據(jù)更新后舊結(jié)果被保留沒有清空輸出表舊數(shù)據(jù)在輸出前調(diào)用ClearOutputSheets先做整表內(nèi)容清除按鈕點擊后沒有反應(yīng)宏被禁用文件另存為啟用宏的工作簿.xlsm并在選項里啟用宏學(xué)號前導(dǎo)0丟失Excel自動把學(xué)號識別為數(shù)字在原始數(shù)據(jù)里把學(xué)號列設(shè)置為文本格式或從教務(wù)系統(tǒng)導(dǎo)出時選文本格式6. 這套方案還可以延伸去做什么處理掛科數(shù)據(jù)只是VBA教務(wù)自動化的一個入門場景。同一套思路——遍歷、字典聚合、條件判定、格式化輸出——遷移到其他場景時基本不需要大改。比如說綜合測評排名。原始數(shù)據(jù)換成多個維度的評分項判定規(guī)則換成加權(quán)得分計算輸出表換成排名表核心代碼框架可以原樣復(fù)用。再比如說選課名單核查。把掛科判定換成沖突檢測判斷邏輯可以檢查同一個時間段內(nèi)是否分配了兩門課程。再比如畢業(yè)資格審核按學(xué)號聚合各學(xué)生已修學(xué)分和必修課完成情況輔助判斷是否達到畢業(yè)條件。我個人實際使用這套方案時最大的體會就是永遠不要在原始數(shù)據(jù)表里手工改數(shù)據(jù)。把數(shù)據(jù)清洗、統(tǒng)計、輸出分成三個相對獨立的過程每次有新的數(shù)據(jù)文件就新開一個工作簿把原始數(shù)據(jù)粘貼進去運行宏生成結(jié)果。這樣原始數(shù)據(jù)永遠可追溯結(jié)果也隨時可以重新生成不會出現(xiàn)改了一個單元格結(jié)果忘記刷新統(tǒng)計的尷尬情況。另一個經(jīng)驗是交給別人使用的工具界面友好度比代碼優(yōu)雅度更重要。我在最終版本里特意在預(yù)警名單表頂部加了一行說明文字提示預(yù)警規(guī)則是真實掛科超過兩門避免使用者和教務(wù)辦對預(yù)警口徑有不同的理解。代碼里每一處規(guī)則都寫了注釋防止半年后自己回來看的時候還得重新猜邏輯。如果你剛接觸VBA建議先拿這個案例的數(shù)據(jù)結(jié)構(gòu)——一張成績表、幾個統(tǒng)計需求——練手。把代碼一行行在本地跑通再試著修改掛科線、增加一個統(tǒng)計維度、或者把輸出格式改得更符合自己的偏好。VBA的學(xué)習(xí)曲線不算平緩但這種接到一個真實需求解決一個具體問題的學(xué)習(xí)方式比單純看語法書要有效得多。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
日韩AC| 国产欧美第五页| 综合激情一一91| 又黄又爽在线观看视频| 亚洲欧美国产日本一区二区三区 | 日韩AV一起草| 92午夜免费福利视频| 香港澳门日本三级网站| 青青草大香蕉视频| 麻豆区久久久久亚| 亚洲资源网| 春色校园综合网| 亚洲色图激情小说| 亚洲性爱高潮影院| 激情五月综合| 另类视频在线| 青青草五月天| 都市激情人妻一区二区青青操视频| 91人妻视频在线| 久久婷婷视频| 小草三级久久观看| 精品.99999| 欧美日韩色图片| 婷婷五月天影院| 精品亚洲国产成人av网站| 日韩精品字幕| 蜜乳AV.COM| 白嫩少妇| 一级黄色性爱裸体视频| 国产福利电影| 无码免费在线观看黄色片| 狠狠爱大香蕉| 日韩av无码网站| 97精品一区| 亚洲 日本 不卡| 九九九999久久久网站| 欧美精品欧美精品系列| 欧美性五月| 曰韩香蕉97| 亚洲se电影| 天天天操天天天爱| 人妻熟女一区二区三区视频| 国产伊人精品在线| 少妇久久久久久久| 午夜操逼不卡| 国产又大又硬又长又粗| 超碰人人色| 久久女婷| 4141514逼喷水三级片| 欧美大香蕉97| 精品久久九| 欧美一区二区三区成人性生活| 蜜臀一二三区| 中文字幕国产在线天堂| 强奸乱伦亚洲第一页| 2018天天干在线视频| 深夜国产一区二区三区在线看| 操逼操网| 中文字幕一二三区| 97草草| 欧美狠狠狠| 四虎免费在线观看| 久久亚洲AV无码专区首页| 一级A片女人高潮叫床| 亚洲欧美日韩精品久久久一区二区 | 久久久久久久久久久免费精品| 国产亚洲欧美每日在线| 日本污ww视频网站| 日韩精品99久久久久久中文字幕 | 久久久555| 无码137片内射在线影院| 久久这里只精品免费福利| 日本十八禁免费看污网站| 男女激情黄色网址| 欧美日韩情色一区二区| 欧美激情亚洲情色| 天天色天天干天天爱| 99这里有精品| 精品欧美日韩在线观看| 成·人免费午夜在线观看| 五月丁香激情啪啪| 日日摸日日碰| 国产精品 视频| 国产精品婬乱一级毛片彝族| 97免费在线视频在线观看| 激情黄色五月天| 9久热这里只有精品| 老司机老司机午夜影院| 啊啊啊啊视频免费| 日本不卡一二区| 精品中文字幕第一页| 亚洲国产第一页综合视频| 91欧美丨精品丨入口| 怡红院成人视频| 无码外流操逼视频| 自拍欧美| 毛片久久| 亚洲AO在线| 欧美淫乱视频| 日本久久网| 99后入| 天堂无码精品国产久| 欧美在线色图| 欧美另类精品xxxx| 人妻人妻天天碰| 思思热在线视频免费| 91chinese在线| 熟女网站最新| 欧美黄片欧美黄片xxx| 欧美999999| 精品人妻一区二区三区四区不卡在| 色爱国产| 久啪视频| 大香蕉伊人久久| 97中文字幕一区| 国产一在线观看| 人妻插插人妻人| 亚洲av成人精品一区| 色色色999| 国产欧美日产一区二区三区 - 国产欧美日| 国产又猛又粗又爽又黄| 精品一区二区三区四区外站 | 色综合潮| 少妇3P性爱自拍| 免费久久9999| 国产精品久久久久久久毛片1| 成人久久精品| 日本护士高潮| 乱人乱色一区二区三区免费 | 香蕉精品二区二区| 欧美另类色图片| 青草一区二区| 91亚州日韩高清| 84YTCOM性无码| 亚洲人在线成线成人| 操国产高清| 亚洲高潮影院| 狠狠操夜夜操蜜桃视频三区| 91天天| 91大神电影天堂| 超碰免费人妻人人| 2020中文字幕在线观看| 死我十八禁| 蜜桃臀av在线观看| 美女裸体无遮挡永久免费观看网站| 亚洲色图a| 先锋色眉乱伦资源| 99久久99九九99九九九| 91九色丨国产丨爆乳| 日韩av免费一级电影| 精品二999| 亚洲国产麻豆一区二区三区 | 夜色五月天| 日韩成人性日韩成人性爱视频在线免费观看| 青青草日逼视频| 亚洲无码国产精品久久| 97在线观看视频| 日本一二区免费| 久久东京伊人一本到鬼色| 亚洲伊人青青草| 国产刺激视频| 一区二区影院| 操一操摸一摸| 欧美色九九| 日韩精品9999| 欧美日韩超碰在线| 亚洲综合中文字幕有码| 亚洲国产成人精品999| 狠狠爱夜夜干| 国产精品国产| 极品出轨视频网站| 亚洲黄色网址| 久久嫩草国产成人一区| 婷婷六月天| 激情五月天插| 国产强奸乱伦欧美| 五月天久久综合网| 精品人妻一区二区三区日产| 丝袜综合网| 亚洲少妇激情一区二区三区| 亚洲AV资源| 色综合久| 99久久精品国产高潮| AVE乱伦| 久久久女人| 97丝袜亚洲在线播放| 六月婷激情福利天堂69| 人妻啊啊人妻啊啊| 女人高潮大叫一级毛片| 亚洲人妻在线一区| 国产久久成人| 伊人操你| 中英熟女操女| 日韩极品无码B| 国产毛片片精品天天看视频| 男女无套 免费网站| 农村少妇久久久久久久| 欧亚韩国999| 超碰97最新人妻| 久久色一区| 嗯嗯啊中文字幕| 97人人草| 久久久久久中文字幕中文字幕最新| 色综合色欲色综合色综合色综合| 国产亚洲人妻综合日韩 久久| 99热在线播放| 最新加勒比丝袜在线| 99ri视频| 99啪啪| 屌妞视频久久久久久久 | 国产女大学生AV| 日va操| 国产成人超碰在线| 国产辣妈在线视频福利| 草草影院最新网址| 日韩久久.一级黄色片| 欧美日产国产在线成人第一区| 青娱乐老司机视频| 国产精品亚洲一级av第二区| 久操网视频| 黄色视频特级毛片| 日韩三级一区| 97精品久久久久久久| 精爱久久| 九九九九九九综合| 日韩操逼HD| 日本视频在线观看污污污| 综合欧美激情网| 99re国产中文字幕| 91老司机在线视频免费观看| 天堂亚洲精品久久老牛| 一本色道人妻久久| 无码人妻精品一区二区三区99不卡| 欧美性生活免费网| 日本一级黄色电影| 91女网站| 亚洲精品久久久久久| 欧美性色欧美| 国产一区自拍欧美日韩| 99在线精品观看99| 亚洲黄日韩无码专区| 欧美青青草视频| 男人天堂资源| 精品亚洲国产成人av网站| 国产女人成人精品视频| 大鸡吧尹人在线| 日本久久999| 九九热国产| 九月丁香婷婷色| www.激情| 狠狠色一区二区中文字幕| 无码精品啪啪啪一区二区三区三州| 欧美人妻制服| 18禁中文字幕| 亚洲欲色9532548967一区| 啊啊啊啊好大好硬啊啊啊啊啊 | 国产欧美日韩精品中文| 天天日日日射| 亚州性9| 啪啪视频亚洲第一| 性色中出| 91骚熟女| 五月婷婷激情网| 美女黄码视频午夜| 99久久久无码国产精品性啊聊| 色色香蕉| 久插不卡| 欧美99999| 色婷婷电影网| 偷拍欧美亚洲| 欧美特大黄一级片片免费| 色婷婷成人综合| 亚洲骚逼少妇| 婷婷久久五月| 偷拍盗拍亚洲色图图片| 操逼日韩无码| 国产精品在线免费| 五月开心网| 夜夜国自区| 久久直播国产| 色哟哟精品1精品2| 超碰人妻天天干| 久久夜色一区二区| 少妇3P性爱自拍| 亚州色图狠狠干| 超碰97护士| 天天操综合网| 欧美 亚洲 在线| 欧美亚洲高清不卡| 欧美日韩午夜精品一区二区三区 | 欧美伊人电影| 加勒比大香蕉视频在线| 亚洲无码 国产无码| 97超碰碰碰| 亚州欧美色图| 久久亚洲不卡一区二区三区| 老司机深夜18禁污污网站| 亚洲乱色视频一区、二区在线| 少妇久久久久久久久| 好吊妞转入那个网| 可免费观看的av毛片中日美韩| 男人的天堂啪啪啪啪啪蜜桃不卡| 777超碰| 欧美日韩丝袜| 在线视频免费观看午夜| 粘花网06av视频| 三男一女不戴套的A片| 久久人妻四季| 午夜福利av电影在线| 天天日天天屌天天操| 日本无码1| 欧美天天在线| 色五月首页| 大香蕉日韩| 黄污污污污| 亚洲性网| 久久久禁| 一二三四免费视频| 成人八戒网站| 精品九九九九九九| 97免费视频网| 大香蕉黄色一区| 精人妻一区二区三区| 最新AVzaixian| 无码区蜜乳| 国产精品97超碰| 99精品在线观看| 欧美成人一级麻豆| 97天天在线| 天天综合色| 一个色导综合| 91欧美情色| 国产农村妇女精品一| 日韩探花精品在线视频| 婷婷伊人五月| 大香蕉性欧美| 丁香婷婷激情五月天无毒不卡| 美女黄频a美女大全免费皮| 免费国产视频| 肉丝无码中文高清| 99爱久久视频频| 日韩乱伦视频| 人人玩人人添人人澡免费| AV女资源| nuu12国产麻豆精品| 亚洲综合另类欧美久久久| 亚洲AV无码久久久国产精品| 日本高清免费一本视频在线观看| 风间由美日韩欧美久久| 亚洲综合69| 欧美日韩国产中文精品字幕自在自线, | 中文字幕 码 自拍 视频 区| 国产av白丝| 91精品女厕偷拍视频| 97色色色| 蜜臀久久久99久久久久 | 亚洲成人精品久久久| 亚洲av热热色| 亚洲情色第一页| 亚洲少妇综合在线播放| 欧美大香蕉久| 97综合在线| 加勒比av网| 美女淫穴| 密臀AV在线| 久久a久久| 丁香婷婷久久 | 大香蕉九九| 思思热免费视频观看| 成人免费视瓶| a片自拍直播视频| 综合色区偷拍| 久久久久久久性爱| 欧美宗合网| 91狠狠狠| 国产精品白丝AV| 激情小说亚洲视频| 91在线丝袜| 9ⅰ久久久天天| 亚洲drav色图| 久久九操在线观看| 亚洲AV在线资源| 免费亚洲国产精品久久一区| 成人天天爽| 在线亚洲丝袜视频网站| 欧美在线色| www.男人天堂| 91碰碰| 亚洲熟久久| 亚洲色香| 夜色97| 人人九九精| 亚洲精品97p| 久肏视频字幕| 欧美一二三| 色99999| 99久久国产精品免费高潮| 日韩中文字墓| 小日子操bb在线看| 极品色www影院| 91一区二区| 欧美精品在线观看| 劲爆欧美人妖三区91| 97超碰国产亚洲精品| 中文字幕av一区二区三区人妻少妇 | 中文字幕第95页| 欧美色吧综合| 神马久久久久久久| 影音先锋日本一区二区| wwwcaobibi| 欧美激情综合色综合啪啪五月| 超碰97起碰| 1区2区3区中文字幕日韩| 青青草玖玖爱| 日日摸天天爽夜夜欢| 91网九色蝌蚪操熟女| 亚洲AV噜噜狠狠网址蜜桃动漫| 人妻-91porn| 日本一二区免费| 东京热精品97综合网| 9久9久9久9久视频网站| J?P?NESEHD熟女熟妇伦| 伊人久操| 久久发布国产伦子伦精品| 成人久久精品| 夜夜爽夜夜| 伦伦成年午夜免费视频| 大香蕉 222| 在线电影亚洲色图| 日韩欧美午夜一区二区| 四色永久成人网站| 蜜乳av一区二区三区| 九九久久玖玖| 黄片www.| 97超碰巨乳| 91爱网| 国产高清精品福利| 97天天| 最新日日夜夜天天干干| 盗摄 精品 另类 一区| 好舒服视频| 国产白丝精品在线观看| 五月丁香六月婷| 999 久久久| 日本操逼视频免费| 婷婷五月天激情网| 日本不卡一二区| 岛国黄色大片网站| 中文字幕人乱码中文字的预防方法 | 限制级中的三级片中的黑粗大屌屌日人妻熟女| 少妇熟女1区2区3区| 女人爽到高潮潮喷18禁网站| 97精品中文字幕| 岛国免费视频在线| 蜜臀亚洲中文| a片久久久久久久久久久久 | 99热精品在线| 91AV国产精品| 亚洲最大AV网| 欧美天天在线| 黄色免费网页无码| 亚洲脚交| 精品一二三区久久AAA片| 成人久久精品| 色综合av男人天堂| 懂色av中文字幕一区二区三区天美| 国产精品久久久久无码Av网曝门| 夜夜操av亚洲一区二区| 中英熟女操女| 污污污8888| 自怕偷自怕亚洲精品| 91偷拍欧美亚洲| 中文字幕精品免费一区二区| 殴美日韩m| 国产成人拍国产亚洲精品| 美日韩一卡二卡三卡免费人妻精品| 青青草国产欧美非洲黑人| 夜夜肏2021| 天天综合亚洲综合| 亚洲网自拍| 欧美日韩电影成人在线| 欧美综合 站| 333kkkk·亚洲com久久| 羞答答AV中文字| 国产超碰在线| 精品蜜乳AV免费观看| 精品乱子一区二区三区99| 肏逼福利网站| 亚洲青色欧美| 免费看日本操逼视频| 亚洲性高潮| ′ !γ}丶。。久久精品欧美一区二区三区 | 尹人免费观看视频在线| 亚洲天堂日本| 亚洲激情AV| 日韩三级伊人| a人片中文字幕一区二区| 色欲日韩欧美在线一区| 曰韩中文人妻视频| 二三四区精品| 免费观看有码高清视频| 无码最新| 九久精品| 欧美激情亚洲情色| 91网站18在线观看| 女人喷水视频在线观看| 天天日天天干少妇日| 欧美五区| 国产亚洲色婷婷久久99精品91| 国产色产精品在线观看| 蜜臀无码一区二区| 久久伊人在线五区| 五月丁香综合激情| 精品国产一区二区三区四区在线看| 国产精品乱码久久久、久久| 精彩视频日韩| 可以免费观看的av| 久久精品国产亚洲AV嘿嘿| 1240青青草一区二区三区视频天爱| 在线97在线| 狠狠色色| 333kkkk·亚洲com久久| 久久黄片国产一区二区| 亚洲视频精选| 天天天操天天天爱| 四虎国产成人精品免费一女五男| 九九色综合| 国产一级作爱毛片| 人人干黄色| 91老司机视频| 亚洲精品熟妇1区2区3区。| 性生活久久久久久久久久| 天天干天天干天天| 偷窥自拍A片| 日本性爰一道本| 亚洲中字幕日本一区二区三区| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 妺妺跟我一起洗澡没忍住| 免费中文综合精品| 九九九久久久| 人妻天堂网| 亚洲第一页综合在线| 欧美色图 人妻| 欧美熟女妇同| 伊人国产视频| 97超级欧美| 91视频成人福利网站在线一区| 蜜臀av在线播放一区二区三区| 免费人成?大片在线播放| 艹精品| 人人操肉肉| 少妇一级婬片免费放一级a性色.| 国产狂喷潮在线精品| 夜夜爽夜夜爽| 国产高清自拍视频| 欧美色999| 91精品老女人| 国产品精品自在在线午夜免费| 大香蕉淫人网| 国产美女高潮| 91视频伊人| 亚洲男人久久综合天堂| 乱伦一区二区三区‘| 日本一区视频在线观看| 伊人久久综合精品欧美| 亚洲最大成人a毛毛片| 韩国成人精品久久久免费看| 99久久久久久久久| 亚洲中文字幕av| 久久女婷| 嗯阿好爽好紧| 鸥美极品| 亚洲深夜福利| 操国产逼| 蜜乳AV一区二区三区四| 色色色色电影网| 99成人| 一区=区三区视频| 97日视频| 熟女熟妇一区二区三区视频| 伦理第一页| 日产操逼| caoni国产亚洲av| AV九九| 亚洲少妇诱惑| 男人的天堂日韩| 欧美宗合色| 亚洲成人精品在线一区| 风流老熟女一区二区三区l| 成人网址在线观看| 超碰 另类 欧美| 超碰碰小说97| 日本一区二区亚洲综合| 粉嫩不卡一区二区性爱| 日本曲间由美性生活片| 熟女一区二区三区| 精品国产AV一区天美传媒| yaouchengrenav| 日韩一级成人毛片免费观看 | 97频视在线| 麻豆av一区二区| 老熟女搡BBBB搡BBBB视频| 91麻豆va国产精品| 超碰人妻中文在线| 超碰美女97| 人人摸人人添人人操| 久操综合在线| 91男人综合| 欧美日韩黄片精品在线| 床上啊啊啊一区二区三区| 日本999精品| 国产60页| 99啪啪| 美女91色黄18| 影音先锋日本一区二区| 红杏大香蕉| 国产精品夜夜夜| 亚川综合视频| 天天淫人人妻日日色| 日本免费一级AAA大片器| 九九色综合| 超碰这里有精品| 国内偷自视频区视频综合 | 1769一区| 91亚州日韩高清| 东京热,男人的天堂| 国产精品一级特黄aaa大片在线观看| 日本人体九九九九九九| 校园春色 亚洲| 岛国AB视频| 免费看污网址| 日逼逼免费看| 亚洲天堂第一页| 天天看夜夜看日日干| 中文字幕精品一区二区精品| 67914在线兔费成人视频| 欧美日韩操逼动图| 色婷婷淫色网| 亚欧成人综合影院| 97一区二区三区视频| www.亚洲黄色| 欧美日韩黄色片一区二区三区四区人与兽做爱 | 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 日韩欧美三级| 五月丁香六月婷| 精品无人区麻豆乱码1区2区图片 | 精品一区二区三区蜜桃臀www| 18禁无码永久免费无限制| 男人下部插入女人下部| 国产女同在线观看视频| 九九视品黄色| 国产精品精品系列在线观看| 人妻天天爽夜夜爽精品2| 男女啪啪网站免费视频| 日本不卡码黄色| 欧美不卡在线一区二区| 97国产天堂岛| 欧美日韩性爱无码| 亚洲九九视频| 欧美九9 9 9| 国产精品免费久久久久久久久久| 97舔舔| 国产精品午夜福利亚洲综合网| 超碰碰97| 丰满高潮18xxxx| 精品少妇一区二区| 大香蕉97久久| 18禁止看精品中文字幕| 人人澡人人弄| 无码自拍SM| 欧美少妇色图| A男人的天堂| a在线观看| 亚洲麻豆av一区二区| 啊啊啊好大好湿| 日韩中文字幕视频在线观看| 人妻欧美| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 在线观看精品国产免费| 色五月av| 伦在线97| 中文字幕 码 自拍 视频 区| 色婷婷六月丁香七月婷婷| 五十路人妻在线| 六九九九| 亚洲一卡2卡3卡4卡乱码网站| 高清无码一区二区三区| 欧美激情黑人| 97一区二区蜜臀| 国产精品久久久久久久久AV大片| 99久久99久久免费精品蜜臀| 中出后入| 久jiu久神马影院| 欧美视频一区二区在线| 蜜臀久久99精品久久久电影| 天天插天天操天天摸天天射天天看| 九九成人视频| 人人看欧美性爱| 97精品久久| 精品9999| 日夜干射色啊| 后X久久| 91|九色|国产熟女| av天堂天堂av日韩| 欧美91精品国产自产| 啊啊啊好疼| 国产精品91ai| 水澄无码AV| 一级久久久久久久久久久| 国产成人91一区二区三区| 蜜臀在线网站| 五毛骚逼极品美女怕怕| 伊人青青一区成人视频在线观看区| 国产97视频免费观看| 亚洲av国产av综合av卡| 免费一二区| 久久久天堂| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 少妇超碰在线| 一区二区娱乐网站| 欧美日韩国产高清在线一二三区 | 人妻在线大香蕉| 91丝袜美女| 中文字幕一区 二区三四五 区日 日骚| 天天躁日日躁AAA片李宗瑞| 伊人丁香五月婷婷| 免费看片黄| 精品视频在线观看精品| 欧美日韩1234| 好爽视频在线观看视频 | 女优视频第10页| 日本一级一级一级一级| 免费黄色视频网址| 亚洲各类熟们中文字幕| 青青操轻轻| 干婷婷综合网| 日本网色| 婷婷五月色| 亚洲综合在线视频| 少妇一线天久久久久久| 亚洲欧美大香蕉| 一本道综合色图| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 女生自91网站| 欧美日韩亚洲高清不卡一区二区三区| 啊啊啊啊啊操我视频| 密臀在线免费观看| 午夜啊啊啊| 97超碰在线资源网站| 亚洲欧美国产va在线| 一级黄碟| 亚洲天堂久久| 青青青青操国内视频在线| 神马午夜久久| 精品人妻一区二区三区四区石在线| 在线日韩精品一区二区三区| 内射夫妻三片| 国产专区第一页| 人人射人人操人人摸| 久久久久国产无av| 日韩乱码Av| 人妻无码后入| 国产免费一区| 麻豆AV一区二区天美传媒| 另类图片综合| 嫩呦国产一区二区三区AV| 欧美大香蕉专区网| 99视频只有精品| 日韩AV一区二区三区三州三州| 久久中日麻豆| 夜夜高潮夜夜爽国产伦精品| 青草精品视频日本久久久久网站在线| 色综合国产在线观看| 天天操天天干一区二区 | 超97在线精品视频| 色五月综合网| 你草精品在线视频| 人妻蜜桃臀| 翔田千里爆乳巨臀无码| 国产精品一区二区三区,亚洲综合| 国产综合操逼高清| 国产13区| 欧美亚洲在线| 亚洲av无码国产精品字幕| 1024人妻熟女一区二区三区| 六九九九| ...日韩成人一区二区三区字幕| 日韩一级二级三级| 久久精品日韩| www.狠狠干.coom| 天堂网 主播 亚洲| 国产亚洲99久久精品熟| 日本午夜精品理论片A级APP发布| 福利偷拍视频-中文字幕2019国语完整视频大全-S91AV | 日韩精品一区二区人人人| 另类亚洲一区二区三区| 免费一级视频特黄色大片| 欧美内射少妇| 久久久性爱| 亚洲黄色网址视频| 无码一区二区三区四区五区六区七区八区九区十区视频 | 国产亚洲福利第一页丝袜| 国产乱伦性爱AV| 久久久不卡区一区二区三区久久久| 青娱乐黄色录像| 操逼操网| 色网在线| 亚洲成人在线高清| 97超碰碰碰| 久久精品操| 日韩午夜精品一区二区三区电影| 久久的网站啊啊啊啊啊| 天天综合青苹果| 免费A V在线播放| 丁香婷婷激情五月天无毒不卡| 黄页| 99热超碰在线| 日韩无码服务区| 日韩不卡在线一区二区| 美女主播色欲91抠b在线播放| 中文字幕后石码四区五区| 黄网在线播放| 欧美人妻熟女在线| 一级特级aaaa毛片免费观看| 99RE在线视频精品,这里只有精品| 91丝袜| 色九九九九久| 一本色道久久综合精品婷婷| AAA久久| 欧美97免费| 无码自拍SM| 亚洲操操操无码| 日本午夜久久电影| 美女十八禁| 国模精品一区二区三区苹果色戒| nuu12国产麻豆精品| 日韩探花精品在线视频| 操逼短片| 亚洲AV无码国产精品久久久久 | 欧美v亚洲v日韩v最新在线二区 | 综合久久婷婷| 黄色工厂这里只有精品| 久久久婷婷| 舔足天天操天天射| 性欧美另类高清| 污色区网站| 少妇与黑人高潮在线| CCYY草草影院地址入口| 中文字幕97色| 日本高清_区二区三区 | 大香蕉99热| 久久一二三四不卡 | 在线可观看的黄色网址| 一区久久久二区| 日韩另类色图| 岛国AV一区二区电影| 伊人久久大香蕉线AV五月天| 国产白丝网站| 天天操美美| 91亚洲丝袜| 蜜桃传媒视频第一区入口在线看| 99少妇| 亚洲色图亚洲| 无码逼| 95精品在线| 日本孕妇孕交| 91爱网| 天天天天天干夜夜夜夜夜操| 人妻啊啊人妻啊| 日本超碰色精品| 亚洲丝袜诱惑| 爱做久久久久久| 国产夜夜艹| 日韩本不卡视频在线观看| 91P0RNY大屁股人妻| 欧美激情中文字幕另类小说| 九九九九九九九精品视频| 91性高| 国产肏逼网站| 久久色人体| 白嫩91在线亚洲| 中文字幕亚洲永久精品| 蜜臀精品1区2区| 91 天天综合| 欧美特大黄一级片片免费| 白 大 人妻 区 在线| 蜜臀久久99精品久久久| 久久色情| 天天综合网视频91| 成人亚欧免费视频| 97日视频| 强奸乱伦Av网| 99黄页网站| 狠狠操夜夜| 国产1727欧美| 日本性爱网址| 免看60秒涩涩视频| 国产女人成人精品视频| 曰本道人妻久久久在线不卡色视频| 天天插夜夜操| 日韩性爱1级片视频| 红桃视频高潮| 人人澡人人爽人人精品| 国产成人亚洲精品自产在线| 人妻少妇精品一区二区三区| 亚洲欧洲国产综合av| 日日碰狠狠添天天爽超| 性一交一乱一交A片久久四色| 美女写真| 欧美日韩中文亚洲v在线综合| av午夜影院在线播放| 国产九月婷婷| 夜夜影视四色| 天天草天天日| 日韩 女同 综合| 思思热在线视频精品| 午夜福利一区二区影院| 欧美日韩人妻精品一区二区三区| 亚洲成人精品久久久| 开心激情婷婷| 欧美日日操| 亚洲精品免费中文字幕| 97超碰欧美精品| 超碰98综合网| 五月婷婷六月丁香| 18禁精品网站在线看| 久久在肏| 国产噜噜噜噜噜久久久久久久久| 天无日色综合| 婷婷精品国产一区二区三区日韩| 无码视频一区二区| 国产精品久久久久久亚洲色欲| 精品网站9999| 围产精品一区二区三区视频播放| 亚洲欧洲日本精品中文a∨| 狠狠操狠狠燥| 国产精品一二三免费网站| 黑人性欧美| 欧美后进式| 亚洲成人在线乱码色午夜| 巨爆乳肉感一区二区三区竹菊影视| 玖玖爱伊人玖玖爱| 日韩三A大片在线观看| 国产熟妇 码视频户外直播| 激情婷婷五月天| 国产在线视频午夜精华在| 午夜精品人妻二区三区| 欧美白嫩女HD| {男男暴菊gay无套网站| n1038 一二三区| 国产久久成人| 欧美同性恋 的搜索结果 - 91n| 404操逼福利视频| 日本99一区二区| 国产aⅴ无码片毛片一级网站| 蜜臀99999| 久久色情| 九九碰九九爱97| 一区二区三区黄片免费观看| 国产小黄片在线免费观看| 一区不卡在线观看av| 天天综合,91入口| 亚洲狼狼干综合1| 欧美精品丝袜久久久中文字幕| 91女神在线视频| 国产日韩中文字幕欧美| 超碰综合色| 亚洲欧洲精品成人| 日本九九九九| se吧提供国产乱老熟视频胖女人| WWW.加勒比人妻一区不卡.com| 日韩欧美经典在线观看| 国产一区二区三区导航| 99综合网| 国产少妇高潮| 妇女一区二区三区| 国产在线激情视频| 激情第四色| 国产精品一区二区后入| 亚洲高清欧美总合| 亚洲一卡2卡3卡4卡乱码网站| 首页亚洲国产高跟丝袜诱惑视频| 自拍二页| 日产操逼| 99久久婷婷国产综合精品草原| 99xav| 91久久青青草原精品| 午夜电影在线观看无码专区| 蜜桃久久久久久久| 久久亚洲欧美一区二区三区-亚洲国产精品第一区二区 | 长长久久88视频| 久久精品高清无码一区| 国产日韩精品suv| renqi久久久久久久久久久久| 久热99999| 成人亚欧免费视频| 亚洲老司机123专区| 无码国产Av| 人妻黑丝袜电影| 黄片视频,下载| 青青国产在线拍揄自揄拍| 91狠狠| 久久精品视频28| 无遮挡一级毛片视频免费的| 亚洲情色电影网| 久久久久亚洲Av无码专区老牛影视| 99ri视频| 日韩97P| 97色欧州| 日韩一性一交一A片俄罗斯 | 国产91丝袜 在线播放| 欧美特大黄一级片片免费| 青青草AV色| 激情综合五月天| 中国操逼无码| 青青伊人久久| 国产高潮AA片免费看| 密乳视频在线| 久久精9| 久久久久婷婷| 试看日韩黄片| 97超色| 伊人久久亚洲中文字幕| 做爱A级亚欧| 深夜国产福利| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 屁股久久久久久| 日韩国产十八禁| 久久九九综合| 国产视频一区二区三区在线免费观看 | 日本久久综合| 99热只有| 91成人久久 | 久久久久亚洲熟妇熟女| 99福利社| 97色视频在线| 久久色激情一区二区三区| 性色av网站| 免费人成在线观看网站品爱网| 国内一级精品| 俺也射| 久草在| 精久久久91| 久久国产视频专区一二三| 中国一区二区亚洲人妻| 搞中出久久| 91操操| 无码人妻精品一区二区三区九九| 青青草影视蜜久久| 2024黄色视频| 国内毛片国产专区二| 日日夜夜干| 欧洲自拍色图gif在线| 色色九区| 欧美经典一区二区三区 | 不卡码视频| 精品视频专区| 97欧美精品综合| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 丁香五月激情网| 亚洲中文日韩欧美大香蕉视频| 国产精品久久久久久无码红治院| 欧美在线播放aaaa| 91撸色网 玖玖网 欧美| 亚洲欧美大| 欧美久久人人网| 国产精品久久久久久久毛片1| 国产成人亚洲精品无码古代早漏男| 亚洲图片色图欧美另类| 国产精品女aA片爽爽视频| 欧美一区二区日韩三区| 亚洲码在线中文在线观看| 98超碰日本| 亚洲少妇色图自慰直播| 操人妻少妇中文 | 毛片99-全集电影手机免费观看完整-B029AV | 狠插 制服 自拍| 校园春色中文字幕AV| 最新av在线| 人妻天天爽| 97超碰中文| 九九九九九九九九九九精品视频| 狠狠亚洲| 久久精品国产97欧美精品亚洲| 色欧美综合| 被窝影院午夜看片无码| 欧亚日韩一区在线| 日本精品999| 一个色导综合| 嫩呦国产一区二区三区AV| 成人无码在线超碰网| 91丨国产丨白浆秘 洗澡动漫| 婷婷色综合欧美日韩| 欧洲亚洲综合| 四虎884| 黄片免费日韩| 操逼无码操逼| 玖玖婷婷五月天| 校园春色综合香蕉| 国产1024在线播放| A片 AV一级在线播放观看免费| 99这里有精品视频| 一区二区播放| 精品毛片av一区二区 | 国产精品网站免费| 91欧美另类| 亚州欧美色图| AV污污污污| 欧色综合| 久久久性少妇| 成人性交免费视屏| 国产一区二区精品久久99| 校园春色制服丝袜中文字亚洲| 亚洲国内精品成人不卡| 亚洲日韩国产欧美综合v| 国产剧情一区在线观看| 免费超碰97久久| 久久日韩精品一区二区| 91美女中出| 色天天野狼综合社区| 加勒比伊人| 少妇滛荡视频| a人欧美综合天堂麻豆| 日本大香蕉综合网| AV乱伦国产| 五月天色综合| 我想要 啊 啊 啊| 天天综合,91综合永久| 色综合20p| 欧美激情另类一区二区| 人妻在线臀日韩| 久久久久女教师免费一区| 中国国国产一级特黄毛片| 尤物视频新赏网鲜网色诱网| 美女国产一区二区久久| 久久精品国产97欧美精品亚洲| 发朗少妇买婬全视频中文| 国产精品视频自拍在线| 九九五月天| 四虎国产成人精品免费一女五男| 免费a在线播放v| 国产精品午夜福利亚洲综合网| 国产精品乱码久久久久久久| 夜夜爽77777| 欧美性爱系列| 日小BB小视频| 九九九九久久久久| 久操免费视频| 大香蕉之青青草原| 日韩在线女优天天干| 狠狠操综合| 人妻中文字幕日韩电影| 亚欧性爱无码| 天天日天天干天天色| 黄色免费一级在线毛片| 啊啊啊啊好多水| 97ai亚洲| 超碰九区| 女生91网站| 极品另类|