• [转载]巧用Excel的宏录制功能,查看对应的Interop.Excel 中的操作代码


       在很多项目中,我们都会用到导出Excel的功能。通常都会用Interop.Excel 这个DLL .
            如果你用对象浏览器去看它的话,你会看到很多的对象属性方法,但是这些都没有说明文字,很少能从字面上理解他的意思,特别是对偶这种英文很差的人来说。更不方便的是,明明某个对象下有很多属性方法,但是你在代码中打“.”的时候,智能提示后面都不会出现方法属性列表,只会有一个GetType(). 郁闷。
            我做的项目的用户对生成的Excel文件有很多要求,比如希望某些单元格的背景是什么颜色的,希望某些单元格是什么公式,希望excel在下面滚动条滚动的时候,前三列永远固定住等等。在EXCEL软件里你可能会做,但是在代码中你不知道哪个属性可以设置,哪个方法可以实现这个功能,这时候怎么办 ?我的一个朋友告诉我这个方法,我今天把它拿来分享。
            EXCEL菜单里有一个宏录制功能,会把在你的操作过程中EXCEL运行的VB代码录下来。
            Tools-->Macro-->Record new macro
            这里会出现一个小窗体

    不用设置就可以了,点OK,接着就出现一个停止按钮,
    等你操作完了点停止就行了。
    接着你就作你想实现的效果,比如前三列固定,你可以选择D列,选择菜单window-->freeze panes
    这样就操作完了,点击停止。

    然后我们就看录下来的VB代码。菜单 Tools-->Macro-->Macros...
    选择Edit,或者直接 Tools-->macro-->Visual Basic Editor

    打开后就看到我们刚才录下的每一步的代码

    Sub Macro3()
    '
    ' Macro3 Macro
    ' Macro recorded 2006-6-23 by Administrator


        Columns("D:D").Select
        ActiveWindow.FreezePanes = True

    End Sub
    原来代码中就是ActiveWindow.FreezePanes 这个东西控制的。
    最后在代码里你就可以这样写
            excelSheet.Cells(1, 3).Select()
            excelApp.ActiveWindow.FreezePanes = True

    这样就完成了。其它效果也是一样,比如设置格式,公式,颜色,样式

        excelSheet.Range(es.Cells(4, 4), es.Cells(4, 7)).Interior.ColorIndex = 44

    怎么样,希望有帮到你。

  • 相关阅读:
    Linux连接字符串
    【aws】
    运行mlflow命令报错 The 'nose' distribution was not found and is required by nose-exclude
    【apt install】Unable to locate package python3-pip
    python package打包发布,安装
    【mlflow】mlflow打包、启动、换用mysql backend、mysql配置
    【mlflow】打包:npm run build + python setup.py sdist
    【css flex】将多个<div>放在同一行
    【react 条件渲染】在render的html中使用 三元运算符 进行条件渲染
    由于无法验证发布者 所以windows阻止此软件
  • 原文地址:https://www.cnblogs.com/summer_adai/p/1823979.html
Copyright © 2020-2023  润新知