zoukankan      html  css  js  c++  java
  • 创建小专题

    Sub PartFiterQuestion()
    
    Application.DisplayAlerts = False
    
        Dim Wb As Workbook
        Dim Sht As Worksheet
        Dim dHow As Object
        Dim dWhat As Object
        Dim HasHow As Boolean
        Dim HasWhat As Boolean
        Dim Dic As Object
        Dim Index As Long
        Dim Ar() As String
        ReDim Ar(1 To 3, 1 To 1)
        Set Dic = CreateObject("Scripting.Dictionary")
        Set dHow = CreateObject("Scripting.Dictionary")
        Set dWhat = CreateObject("Scripting.Dictionary")
        
        Set Wb = Application.ThisWorkbook
        Set Sht = Wb.Worksheets("创建小专题")
        With Sht
            PartName = .Range("C2").Text
            endrow = .Cells(.Cells.Rows.Count, 1).End(xlUp).Row
            For i = 2 To endrow
                Key = .Cells(i, 1).Text
                dHow(Key) = ""
            Next i
            endrow = .Cells(.Cells.Rows.Count, 2).End(xlUp).Row
            For i = 2 To endrow
                Key = .Cells(i, 2).Text
                dWhat(Key) = ""
            Next i
        End With
        
        Set Wb = Application.ThisWorkbook
        Set Sht = Wb.Worksheets("Question")
        With Sht
            endrow = .Cells(.Cells.Rows.Count, 1).End(xlUp).Row
            Set Rng = .Range("A2:C" & endrow)
            Arr = Rng.Value
            Index = 0
            For i = LBound(Arr) To UBound(Arr)
                HasHow = False
                HasWhat = False
                Ques = CStr(Arr(i, 3))
                For Each OneHow In dHow.Keys
                    If InStr(Ques, OneHow) > 0 Then
                        HasHow = True
                        Exit For
                    End If
                Next OneHow
                
                For Each OneWhat In dWhat.Keys
                    If InStr(Right(Ques, 6), OneWhat) > 0 Then
                        HasWhat = True
                        Exit For
                    End If
                Next OneWhat
                
                If HasHow And HasWhat Then
                    Index = Index + 1
                    ReDim Preserve Ar(1 To 3, 1 To Index)
                    For j = 1 To 3
                        Ar(j, Index) = Arr(i, j)
                    Next j
                End If
                
            Next i
            
        End With
        
    On Error Resume Next
          Wb.Worksheets(PartName).Delete
    On Error GoTo 0
    
        
        
      
        Set NewSht = Wb.Worksheets.Add(After:=Wb.Worksheets(Wb.Worksheets.Count))
        NewSht.Name = PartName
        
        'Set NewSht = Wb.Worksheets("PartAfter")
        With NewSht
            .Range("A1:C1").Value = Array("试卷", "URL", "问题")
            
            Set Rng = .Range("A2")
            Set Rng = Rng.Resize(Index, 3)
            Rng.Value = Application.WorksheetFunction.Transpose(Ar)
            .UsedRange.Columns.AutoFit
            
        End With
        
        
        Set Dic = Nothing
        Set Wb = Nothing
        Set Sht = Nothing
        Set Rng = Nothing
        Set dWhat = Nothing
        Set dHow = Nothing
        
    Application.ScreenUpdating = True
        
    End Sub
    

      

  • 相关阅读:
    vue路由跳转时更改页面title
    vue:axios二次封装,接口统一存放
    https://github.com/simple-uploader/vue-uploader/blob/master/README_zh-CN.md
    基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件
    前端三大主流框架的对比React、Vue、Angular 所谓是是三分天下
    React前端框架以及和Vue的对比
    Win10远程桌面:身份验证错误要求的函数不受支持的解决方法
    经典案例模块——20200404
    流的新认知
    网络编程
  • 原文地址:https://www.cnblogs.com/nextseven/p/8437066.html
Copyright © 2011-2022 走看看