20170503xlVBA房地产数据分类连接

Sub NextSeven_CodeFrame4()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Application.Calculation = xlCalculationManual
    Application.StatusBar = ">>>>>>>>程序正在运行>>>>>>>>"

    On Error GoTo ErrHandler

    Dim StartTime, UsedTime As Variant
    StartTime = VBA.Timer
    ‘>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

    Dim Wb As Workbook
    Dim Sht As Worksheet
    Dim oSht As Worksheet
    Dim Rng As Range
    Dim Arr As Variant
    Dim EndRow As Long
    Const HEAD_ROW As Long = 2
    Const SHEET_NAME As String = "具体事项"
    Const START_COLUMN As String = "A"
    Const END_COLUMN As String = "I"

    Dim Key As String
    Dim OneKey

    Dim Dic As Object
    Set Dic = CreateObject("Scripting.Dictionary")

    Dim dInfo As Object
    Set dInfo = CreateObject("Scripting.Dictionary")

    Dim dCal As Object

    ‘>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    Set Wb = Application.ThisWorkbook
    Set Sht = Wb.Worksheets(SHEET_NAME)
    With Sht
        EndRow = .Cells(.Cells.Rows.Count, "D").End(xlUp).Row
        Debug.Print EndRow
        Set Rng = .Range(.Cells(HEAD_ROW + 1, START_COLUMN), .Cells(EndRow, END_COLUMN))

        Arr = Rng.Value
        For i = LBound(Arr) To UBound(Arr)
            If Arr(i, 1) = "" Then Arr(i, 1) = Arr(i - 1, 1)
            Key = CStr(Arr(i, 5))
            Dic(Key) = Dic(Key) + 1

            Key = CStr(Arr(i, 5) & ";" & Arr(i, 1))
            dInfo(Key) = dInfo(Key) + 1

        Next i
    End With

    ‘>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    Set oSht = Wb.Worksheets("协调合作单位分析")
    With oSht
        .UsedRange.Offset(HEAD_ROW).Clear
        N = 0
        dicsum = Application.WorksheetFunction.Sum(Dic.items)
        For Each ok In Dic.Keys    ‘合作单位是OK
            N = N + 1
            .Cells(N + HEAD_ROW, "A").Value = N
            .Cells(N + HEAD_ROW, "B").Value = ok
            .Cells(N + HEAD_ROW, "C").Value = Dic(ok)
            .Cells(N + HEAD_ROW, "D").Value = Format(Dic(ok) / dicsum, "#0.00%")

            Set dCal = CreateObject("Scripting.Dictionary")

            For Each pk In dInfo.Keys
                pos = InStr(1, pk, ok)
                If pos > 0 Then
                    pos = InStr(1, pk, ";")
                    nk = Mid(pk, pos + 1)    ‘区域
                    ‘Debug.Print nk
                    ‘区域及对应数量
                    dCal(nk) = dInfo(pk)
                End If
            Next pk

            iMax = Application.WorksheetFunction.Max(dCal.items)
            info = ""

            For x = iMax To 1 Step -1
                For Each nk In dCal.Keys    ‘区域
                    If dCal(nk) = x Then
                        info = info & nk
                        info = info & x
                        info = info & ";"
                    End If
                Next nk
            Next x
            .Cells(N + HEAD_ROW, "E").Value = Left(info, Len(info) - 1)
        Next ok
        Set Rng = .Range("A65536").End(xlUp).Offset(1)
        Rng.Resize(1, 2).Merge
        Rng.Value = "汇总"

        .Range("C65536").End(xlUp).Offset(1).Value = dicsum
        .Range("D65536").End(xlUp).Offset(1).Value = "100%"
             .Range("E:E").WrapText = True

             SetEdges .UsedRange
    End With

    ‘>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    UsedTime = VBA.Timer - StartTime
    ‘MsgBox "本次耗时:" & Format(UsedTime, "0.000秒"), vbOKOnly, "NextSeven Excel Studio"

ErrorExit:
    Set Wb = Nothing
    Set Sht = Nothing
    Set Rng = Nothing
    Set Dic = Nothing

    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
    Application.Calculation = xlCalculationAutomatic
    Application.StatusBar = False
    Exit Sub
    ‘>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
ErrHandler:
    If Err.Number <> 0 Then
        MsgBox Err.Description & "!", vbCritical, "NextSeven Excel Studio"
        ‘Debug.Print Err.Description
        Err.Clear
        Resume ErrorExit
    End If
End Sub

  

时间: 2024-10-13 04:10:10

20170503xlVBA房地产数据分类连接的相关文章

Python 2.7_pandas连接MySQL数据处理_20161229

在我本地Mysql_local_db数据库建立了一个pandas数据表用来对pandas模块的学习 1.创建表 CREATE TABLE pandastest( 城市 VARCHAR(255), 用户ID INT(19), 订单日期 DATE, 金额 DECIMAL(19,4), 金额区间 VARCHAR(255), 订单数 INT(19), 上次订单日期 DATE, 距上次订单天数 INT(19), 上次金额 DECIMAL(19,4), 距上次订单间隔区间 VARCHAR(255), 品类数

互联网+房地产,跨界才能跨越自我

互联网+房地产,跨界才能跨越自我 发布日期:2016-08-18 13:53 --访福居好房/淘尚好房联合创始人许正北京联盟 http://www.010lm.com/北京联盟 http://www.010lm.com/ 约访许总颇费周折,终于定好时间,本来想约在一家幽静而有情调的咖啡馆见面,被许总简单一句"办公室来吧,我给你泡功夫茶!",就这么定下了约见地点,尽显互联网人的率直.高效.北京联盟 http://www.010lm.com/ 在具有产学研一体化特质的东华创意园,我们找到了

SQLServer---使用Case When解决SQLServer数据分类汇总问题

SQLServer---使用Case When解决SQLServer数据分类汇总问题 近半年一直在负责某市的人事档案管理系统的后期开发和维护工作,之前客户给了一张如下图的表格,需要我去汇总数据,然后填充到表格中. 具体的需求:统计出每一个工作人员在某一段时间内分别打印了多少张不同的信函(或报表). 最初的想法 1.  查出使用该系统的工作人员 select realName as '姓名' from T_User where userID in(select distinct userID fr

win7 64位系统 PB连接oracle数据库出现“oracle library oci.dll could not be loaded”问题的解决方法

今天与大家分享一个自己的学习笔记,希望能给遇到同样问题的人带来帮助. 不知道大家在win7 64位系统下用 PB连接oracle数据库时,是否遇到过“oracle library oci.dll could not be loaded”问题. 今天,在win7 64位系统下用 PB连接oracle数据库时,一直出现上述错误,在百度上找了很久,都没有找到一个完整的解决方案,咨询了很多人,(他们都说是我的PB和oracle没装好,但我装的时候没出现任何问题,一切都很顺利,而且PB和oracle都能正

XShell 连接虚拟机中的服务器 失败 、连接中断(Connection closed by foreign host.)

在使用XShell连接虚拟机中的服务器时,报以下错误并断开连接,之前连接还是挺稳定的,忽然就这样了 Last login: Thu Aug 10 21:28:38 2017 from 192.168.1.102 [[email protected] ~]# Socket error Event: 32 Error: 10053. Connection closing...Socket close. Connection closed by foreign host. Disconnected f

appuim-java,同时连接多台机器,启动微信

1.配置appuim信息 第一台机 第二台机类似,连接端口和监听端口不能重复 2.appuim连接手机,微信中打开debugx5.qq.com,信息->TBS settings->是否打开TBS内核Insperector调试功能 3.代码 方法 public DesiredCapabilities get_capabilities(int i){ //配置appuim信息 DesiredCapabilities capabilities = new DesiredCapabilities();

Android Studio 连接真机不识别

本人也是初学..写错的请大神多多批评指正! 不胜荣幸!! 强烈推荐使用真机测试..除非是最后关头要测试各个Android系统版本.. 本人遇到的连不上的原因有以下几种: 1  --   手机设置问题.开USB调试   方法:  手机设置 - 开发人员选项 - USB调试  - 勾选 2  --   数据线问题.  有的数据线只能用来充电,有的可以连接存储.识别方法很简单..插上机器有USB存储设备的提示的就可以用.另外数据线如果都露线皮了..就赶紧扔了.十块八块的总比你为这个破问题纠结一下午的好

Kubernetes连接外部数据源

Kubernetes架构下比较核心的问题是数据如何persistance,虽然提供了Persistent volumn的方式,但是对于像数据库之类的产品在kubernetes集群环境中运行和管理还是很有难度的,Kubernetes提供了endpoints这种模式让外部的服务映射成内部的服务,这样比较好的解决了集群对外的连接问题, 如果我们去连接外部的一个oracle数据库,具体的步骤如下: 建立endpoints和service. [[email protected] jdbcservice]#

PL/SQL developer 连接oracle数据库报错“initialization error could not load oci.dll”

声明:PL/SQL 版本:PL/SQL Developer 9.0.6 (http://files.allroundautomations.com/plsqldev906.exe) 报错提示如图: 原因:PL/SQL只对32位OS进行支持,解决方法是额外加载一个oci.dll文件 解决办法:1.下载OCI.DLL相关库文件.地址: (需注册Oracle账号) http://www.oracle.com/technetwork/topics/winsoft-085727.html ----->