博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
VBA 特约导入代码
阅读量:7030 次
发布时间:2019-06-28

本文共 3169 字,大约阅读时间需要 10 分钟。

'半夜里匆忙写成,第一次用VBA,只是实现功能,未做性能优化,有时间要重写一下。 Sub Fighting()Application.ScreenUpdating = FalseApplication.DisplayAlerts = FalseDim Cell As Range, FirstAddress As StringDim temp As LongDim c As LongDim tempValue As LongDim d As LongDim str As StringDim RowCount As LongDim tempRow As LongDim tempStr As StringDim struNo As LongDim commentRow As LongDim findRow As RangeDim excelApp, excelWB As ObjectDim savePath As String'机构号With Sheet1RowCount = LastRow()For c = 1 To RowCount    str = .Cells(c, 1).Value        If Len(str) > 0 Then       str = Mid(str, 5, 6)        .Cells(c, 2) = str    End If    NextEnd With'根据机构号,查询对应的行数,放在C列With Sheet1For c = 1 To RowCount    If .Cells(c, 2).Value > 0 Then            temp = .Cells(c, 2).Value                '查询行        With Sheet3            For Each Cell In .Range("A1:A131").Cells                If Cell.Value = temp Then                       tempValue = .Cells(Cell.Row, Cell.Column + 1).Value                End If            Next        End With                .Cells(c, 3) = tempValue    End If    NextEnd With'根据行数,生成新的工作表2With Sheet1tempRow = 1For c = 1 To RowCount    If .Cells(c, 3).Value > 0 Then            temp = .Cells(c, 3).Value       '行数        str = .Cells(c, 1).Value        '单号        struNo = .Cells(c, 2).Value     '机构号                '查询所在行        'Set findRow = Sheet4.Cells.Find(what:=struNo, LookIn:=xlValues)        commentRow = Sheet4.Cells.Find(what:=struNo, LookIn:=xlValues).Row                With Sheet2            For d = 1 To temp                            .Cells(tempRow, 1).NumberFormatLocal = "@"                .Cells(tempRow, 1).ShrinkToFit = True                .Cells(tempRow, 1).Value = str                            .Cells(tempRow, 2).Value = 0                .Cells(tempRow, 3).Value = d - 1                                '取特约内容                .Cells(tempRow, 4).Value = Sheet4.Cells(commentRow + d - 1, 3)                                tempRow = tempRow + 1            Next        End With    End IfNextEnd With'将结果输出到新文件    Set excelApp = CreateObject("Excel.Application")    Set excelWB = excelApp.Workbooks.Add    excelApp.DisplayAlerts = False    savePath = ActiveWorkbook.Path & "\SLBPS_学生险特约导入_2012-XX-XX.xls"    excelWB.SaveAs savePath    excelApp.Quit    Workbooks.Open savePath    '复制    Sheet2.Copy Before:=Workbooks("SLBPS_学生险特约导入_2012-XX-XX.xls").Sheets(1)    With Workbooks("SLBPS_学生险特约导入_2012-XX-XX.xls").Sheets(1)                Sheets(1).Name = "学生险特约"        Rows(1).Insert        Range("a1") = "CNTR_NO"        Range("b1") = "IPSN_NO"        Range("c1") = "SPE_NO"        Range("d1") = "SPE_DETAIL"                Columns(1).ColumnWidth = 25'保存    Workbooks("SLBPS_学生险特约导入_2012-XX-XX.xls").Close SaveChanges:=True    End With    '删除临时数据Sheet1.Columns(3).DeleteSheet1.Columns(2).DeleteSheet2.Columns(4).DeleteSheet2.Columns(3).DeleteSheet2.Columns(2).DeleteSheet2.Columns(1).Delete'更新UIApplication.ScreenUpdating = TrueMsgBox "宏命令执行完成, 文件生成成功!"End SubFunction LastRow() As Long    Dim ix As Long    ix = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count    LastRow = ixEnd Function

转载于:https://www.cnblogs.com/surong/archive/2012/09/11/2679678.html

你可能感兴趣的文章
mysql基本操作
查看>>
39.CSS3弹性伸缩布局【下】
查看>>
[javascript]图解+注释版 Ext.extend()
查看>>
我的前端工具集(七)div背景网格
查看>>
linux 下mongo 基础配置
查看>>
【Dubbo实战】 Dubbo+Zookeeper+Spring整合应用篇-Dubbo基于Zookeeper实现分布式服务(转)...
查看>>
JUnit单元测试中的setUpBeforeClass()、tearDownAfterClass()、setUp()、tearDown()方法小结
查看>>
java之jvm学习笔记六(实践写自己的安全管理器)
查看>>
Docker容器查看ip地址
查看>>
在PC端或移动端应用中接入商业QQ
查看>>
将python3.6软件的py文件打包成exe程序
查看>>
DataTable 排序
查看>>
大白话5分钟带你走进人工智能-第二十节逻辑回归和Softmax多分类问题(5)
查看>>
嵌入式系统在工业控制中的应用
查看>>
使用httpclient异步调用WebAPI接口
查看>>
c++ 类的对象与指针
查看>>
SSTI(模板注入)
查看>>
rbac models
查看>>
[2615]传纸条 sdutOJ
查看>>
类图标注的使用范例
查看>>