vb运行错误 :实时错误 13 类型不匹配
求大哥帮忙看一下是咋回事
Sub Sorting()
Application.DisplayAlerts = False: Application.ScreenUpdating = False: Application.Calculation = xlCalculationManual
Dim T: T = Time
Dim WF As Object: Set WF = Application.WorksheetFunction
Dim Wb As Workbook: Set Wb = ThisWorkbook
Dim Sht As Worksheet: Set Sht = Wb.Worksheets("退件总表")
Dim Sht_Sorting As Worksheet: Set Sht_Sorting = Wb.Worksheets("品名分类规则")
Dim Returns: Set Returns = Sht.Cells.Find("退件原因")
Dim Declare_name: Set Declare_name = Sht.Cells.Find("申报中文名称")
Dim Goods_Name: Set Goods_Name = Sht.Cells.Find("品名分类")
Dim Type_Name: Set Type_Name = Sht.Cells.Find("侵权/违禁品类型")
Dim RTN&: RTN = Returns.Column
Dim Declares&: Declares = Declare_name.Column
Dim Name&: Name = Goods_Name.Column
Dim Types&: Types = Type_Name.Column
Dim Arr: Arr = Sht.Cells(1, 1).CurrentRegion
Dim Sht_Sorting_Arr: Sht_Sorting_Arr = Sht_Sorting.Cells(1, 1).CurrentRegion
Dim MaxRow&: MaxRow = Sht.Cells(Rows.Count, 1).End(xlUp).Row
Dim Sht_Sorting_MaxRow&: Sht_Sorting_MaxRow = Sht_Sorting.Cells(Rows.Count, 1).End(xlUp).Row
Dim Dict_Name: Set Dict_Name = CreateObject("Scripting.Dictionary")
For i = 2 To Sht_Sorting_MaxRow
If Not Dict_Name.Exists(Sht_Sorting_Arr(i, 1)) Then Dict_Name.Add Sht_Sorting_Arr(i, 1), Array(Sht_Sorting_Arr(i, 2), Sht_Sorting_Arr(i, 3))
Next
With Sht
For i = MaxRow To 2 Step -1
Select Case True
Case InStr(Arr(i, RTN), "侵权") Or InStr(Arr(i, RTN), "其他") Or InStr(Arr(i, RTN), "客户退") Or InStr(Arr(i, RTN), "申报") Or InStr(Arr(i, RTN), "超时退") Or InStr(Arr(i, RTN), "低报") Or InStr(Arr(i, RTN), "包装不符") Or InStr(Arr(i, RTN), "未到") Or InStr(Arr(i, RTN), "值过高") Or InStr(Arr(i, RTN), "价重比退回") Or InStr(Arr(i, RTN), "数量超多") Or InStr(Arr(i, RTN), "高货值") Or InStr(Arr(i, RTN), "材积重")
For Each Key In Dict_Name.Keys
If InStr(Arr(i, Declares), Key) Then .Cells(i, Name) = Dict_Name(Key)(0): Exit For
Next
If InStr(Arr(i, RTN), "侵权") Then .Cells(i, Types) = "侵权" Else .Cells(i, Types) = "其他"
Case InStr(Arr(i, RTN), "走带电") Or InStr(Arr(i, RTN), "渠道普货") Or InStr(Arr(i, RTN), "包装不合格") Or InStr(Arr(i, RTN), "普货带电") Or InStr(Arr(i, RTN), "普货发带电") Or InStr(Arr(i, RTN), "带电物品") Or InStr(Arr(i, RTN), "渠道带电") Or InStr(Arr(i, RTN), "普货走带电") Or InStr(Arr(i, RTN), "超容量")
For Each Key In Dict_Name.Keys
If InStr(Arr(i, Declares), Key) Then .Cells(i, Name) = Dict_Name(Key)(0): .Cells(i, Types) = Dict_Name(Key)(1): Exit For
Next
Case Else
For Each Key In Dict_Name.Keys
If InStr(Arr(i, RTN), Key) Then .Cells(i, Name) = Dict_Name(Key)(0): .Cells(i, Types) = Dict_Name(Key)(1): Exit For
Next
End Select
Next
End With
Application.DisplayAlerts = True: Application.ScreenUpdating = True: Application.Calculation = xlCalculationAutomatic
MsgBox "共" & Format(Time - T, "s") & "秒"
End Sub
Sub Sorting_Fast()
Application.DisplayAlerts = False: Application.ScreenUpdating = False: Application.Calculation = xlCalculationManual
Dim T: T = Time
Dim WF As Object: Set WF = Application.WorksheetFunction
Dim Wb As Workbook: Set Wb = ThisWorkbook
Dim Sht As Worksheet: Set Sht = Wb.Worksheets("退件总表")
Dim Sht_Sorting As Worksheet: Set Sht_Sorting = Wb.Worksheets("品名分类规则")
Dim Returns: Set Returns = Sht.Cells.Find("退件原因")
Dim Declare_name: Set Declare_name = Sht.Cells.Find("申报中文名称")
Dim Goods_Name: Set Goods_Name = Sht.Cells.Find("品名分类")
Dim Type_Name: Set Type_Name = Sht.Cells.Find("侵权/违禁品类型")
Dim RTN&: RTN = Returns.Column
Dim Declares&: Declares = Declare_name.Column
Dim Name&: Name = Goods_Name.Column
Dim Types&: Types = Type_Name.Column
Dim Arr: Arr = Sht.Cells(1, 1).CurrentRegion
Dim Sht_Sorting_Arr: Sht_Sorting_Arr = Sht_Sorting.Cells(1, 1).CurrentRegion
Dim MaxRow&: MaxRow = Sht.Cells(Rows.Count, 1).End(xlUp).Row
Dim Sht_Sorting_MaxRow&: Sht_Sorting_MaxRow = Sht_Sorting.Cells(Rows.Count, 1).End(xlUp).Row
Dim Dict_Name: Set Dict_Name = CreateObject("Scripting.Dictionary")
For i = 2 To Sht_Sorting_MaxRow
If Not Dict_Name.Exists(Sht_Sorting_Arr(i, 1)) Then Dict_Name.Add Sht_Sorting_Arr(i, 1), Array(Sht_Sorting_Arr(i, 2), Sht_Sorting_Arr(i, 3))
Next
With Sht
For i = MaxRow To 2 Step -1
If IsEmpty(Arr(i, Name)) Or IsEmpty(Arr(i, Types)) Then
Select Case True
Case InStr(Arr(i, RTN), "侵权") Or InStr(Arr(i, RTN), "其他") Or InStr(Arr(i, RTN), "客户退") Or InStr(Arr(i, RTN), "申报") Or InStr(Arr(i, RTN), "超时退") Or InStr(Arr(i, RTN), "低报") Or InStr(Arr(i, RTN), "包装不符") Or InStr(Arr(i, RTN), "未到") Or InStr(Arr(i, RTN), "值过高") Or InStr(Arr(i, RTN), "价重比退回") Or InStr(Arr(i, RTN), "数量超多") Or InStr(Arr(i, RTN), "高货值") Or InStr(Arr(i, RTN), "材积重")
For Each Key In Dict_Name.Keys
If InStr(Arr(i, Declares), Key) Then 这里错误 实时错误 13 类型不匹配.Cells(i, Name) = Dict_Name(Key)(0): Exit For
Next
If InStr(Arr(i, RTN), "侵权") Then .Cells(i, Types) = "侵权" Else .Cells(i, Types) = "其他"
Case InStr(Arr(i, RTN), "走带电") Or InStr(Arr(i, RTN), "渠道普货") Or InStr(Arr(i, RTN), "包装不合格") Or InStr(Arr(i, RTN), "普货带电") Or InStr(Arr(i, RTN), "普货发带电") Or InStr(Arr(i, RTN), "带电物品") Or InStr(Arr(i, RTN), "渠道带电") Or InStr(Arr(i, RTN), "普货走带电") Or InStr(Arr(i, RTN), "超容量")
For Each Key In Dict_Name.Keys
If InStr(Arr(i, Declares), Key) Then .Cells(i, Name) = Dict_Name(Key)(0): .Cells(i, Types) = Dict_Name(Key)(1): Exit For
Next
Case Else
For Each Key In Dict_Name.Keys
If InStr(Arr(i, RTN), Key) Then .Cells(i, Name) = Dict_Name(Key)(0): .Cells(i, Types) = Dict_Name(Key)(1): Exit For
Next
End Select
End If
Next
End With
Application.DisplayAlerts = True: Application.ScreenUpdating = True: Application.Calculation = xlCalculationAutomatic
MsgBox "共" & Format(Time - T, "s") & "秒"
End Sub
相关推荐
VB里的实时错误:3704
在VB(Visual Basic)编程中,遇到实时错误3704通常表示操作权限被拒绝,这通常是由于尝试访问或操作的资源(如数据库、文件或网络资源)的权限设置不正确导致的。
vb麻将分析器,用于分析13张麻将听什么些牌
首先,我们要了解13张麻将的基本规则。胡牌的类型包括平胡、对对胡、清一色、混一色、大三元、大四喜、十三么等。每种胡牌方式都有其特定的牌型要求,分析器需要考虑这些规则并进行匹配。
VB常见错误类型和程序调试方法PPT课件.pptx
首先,VB程序中的错误可以分为三类:编译错误、实时错误和逻辑错误。编译错误是最直观的,通常由于编写代码时的语法错误导致,VB编译器在解析源代码时无法理解而产生。
vb实时曲线图vb实时曲线图
**错误处理**:良好的错误处理机制能确保程序在遇到问题时仍能稳定运行。使用Try-Catch语句捕获可能出现的异常,并提供适当的反馈或恢复策略。9.
VB错误代码查询 VB学习 错误代码
错误代码"是VB编程中遇到问题时的标识,每个错误代码都对应一个特定的错误类型,比如“424 对象丢失”表示尝试访问的对象不存在,或者“91 对象变量或With块变量未设置”意味着未正确初始化对象引用。


资源
