精华内容
下载资源
问答
  • 导出到Excel后,会生成很多很多行年份、行业的虚拟变量,需要手动调整格式,删除很多很多行才能复制粘贴到论文中,对于经常跑回归的人来说,一次一次重复很浪费时间,于是我利用Excel宏功能设置了条自动整理格式的宏...

    预期效果

    Stata控制行业、年份回归,导出到Excel后,会生成很多很多行年份、行业的虚拟变量,需要手动调整格式,删除很多很多行才能复制粘贴到论文中,对于经常跑回归的人来说,一次一次重复很浪费时间,于是我利用Excel宏功能设置了条自动整理格式的宏。
    【宏运行前】
    在这里插入图片描述
    在这里插入图片描述
    【宏运行后】
    在这里插入图片描述

    实现过程

    相信学过计量使用Stata的都知道如何从Stata输出多个回归结果到Excel:

    reg y1 x1 x2 x3 x4 ......  xn  i.Ind2  i.year 
    est store res1 
    reg y1 x1 x2 x3 x4 ......  xn  i.Ind2  i.year 
    est store res2
    reg y1 x1 x2 x3 x4 ......  xn  i.Ind2  i.year 
    est store res3
    reg y1 x1 x2 x3 x4 ......  xn  i.Ind2  i.year 
    est store res4
    outreg2 [res1 res2 res3 res4] using auditorreturn1,tstat e(r2_a,F) bdec(3) tdec(2) excel replace
    

    下面开始在Excel中进行宏操作:
    可将整个过程拆解成五步
    第一步,录制一个处理表头的宏,主要操作包括删除不必要的行,设置边框,图中高亮处为光标初始定位点。
    下面代码是录制宏时VBA窗口自动生成的代码,后面将基于此段代码进行改写,这样做相比于直接写代码要容易上手。

    Sub 宏3()
    '
    ' 宏3 宏
        Range("A3:E3").Select
        Selection.Delete Shift:=xlUp
        Range("A4:E4").Select
        Selection.Delete Shift:=xlUp
        Selection.Borders(xlDiagonalDown).LineStyle = xlNone
        Selection.Borders(xlDiagonalUp).LineStyle = xlNone
        Selection.Borders(xlEdgeLeft).LineStyle = xlNone
        With Selection.Borders(xlEdgeTop)
            .LineStyle = xlContinuous
            .ColorIndex = xlAutomatic
            .TintAndShade = 0
            .Weight = xlThin
        End With
        Selection.Borders(xlEdgeBottom).LineStyle = xlNone
        Selection.Borders(xlEdgeRight).LineStyle = xlNone
        Selection.Borders(xlInsideVertical).LineStyle = xlNone
        Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
        Range("A4").Select
    
    End Sub
    

    第二步,打开第一步录制宏的VBA窗口,将单元格默认的绝对引用改成相对引用,再写三行简单的代码将活动单元格从表头移动到后面行业虚拟变量2.Ind2处(即上图中第2个高亮处),改完的代码如下:

    Sub 宏1()
    '
    ' 宏1 宏
        ActiveCell.Range("A1:E1").Select
        Selection.Delete Shift:=xlUp
        ActiveCell.Range("A2:E2").Select
        Selection.Delete Shift:=xlUp
        Selection.Borders(xlDiagonalDown).LineStyle = xlNone
        Selection.Borders(xlDiagonalUp).LineStyle = xlNone
        Selection.Borders(xlEdgeLeft).LineStyle = xlNone
        With Selection.Borders(xlEdgeTop)
            .LineStyle = xlContinuous
            .ColorIndex = xlAutomatic
            .TintAndShade = 0
            .Weight = xlThin
        End With
        Selection.Borders(xlEdgeBottom).LineStyle = xlNone
        Selection.Borders(xlEdgeRight).LineStyle = xlNone
        Selection.Borders(xlInsideVertical).LineStyle = xlNone
        Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
        ActiveCell.Range("A1").Select
        
        Do While ActiveCell.Range("A1") <> "2.Ind2"
            ActiveCell.Offset(1, 0).Range("A1").Select
        Loop
        
    End Sub
    

    第三步,录制一个连续删除行的宏,打开VBA窗口,将刚刚生成删除行的代码改写一个循环,修改后的代码如下。

    Sub Stata输出正式整理()
    	Do While ActiveCell.Range("A1") <> "Constant"
    	        ActiveCell.Range("A1:E1").Select
    	        Selection.Delete Shift:=xlUp
    	        ActiveCell.Range("A1").Select
    	    Loop
    	  ActiveCell.Range("A1:E1").Select
    	  Selection.Delete Shift:=xlUp
    	  ActiveCell.Range("A1").Select
    End Sub
    

    该代码实现的功能是从给定的初始位置删除行,直到删除第一个单元格的内容是“Constant”。(即上图中第三个高亮处)

    第四步,在第三步的基础上再写几行代码,在“Constant”后面两行写上控制行业和年份等内容。新增的代码如下:

      ActiveCell.Range("A1") = "控制行业"
      ActiveCell.Range("A2") = "控制年份"
      ActiveCell.Range("B1") = "Y"
      ActiveCell.Range("B2") = "Y"
      ActiveCell.Range("C1") = "Y"
      ActiveCell.Range("C2") = "Y"
      ActiveCell.Range("D1") = "Y"
      ActiveCell.Range("D2") = "Y"
      ActiveCell.Range("E1") = "Y"
      ActiveCell.Range("E2") = "Y"
    

    第五步,最后将第二、三、四步中的代码拼接起来,即实现整个功能。可以点击开发工具里面的宏运行,也可以设置快捷键运行,还可以设置控件按钮通过按钮进行。
    最终整理后代码如下:

    Sub Stata输出正式整理()
    '
    ' 宏2 宏
    '
        ActiveCell.Range("A1:E1").Select
        Selection.Delete Shift:=xlUp
        ActiveCell.Range("A2:E2").Select
        Selection.Delete Shift:=xlUp
        Selection.Borders(xlDiagonalDown).LineStyle = xlNone
        Selection.Borders(xlDiagonalUp).LineStyle = xlNone
        Selection.Borders(xlEdgeLeft).LineStyle = xlNone
        With Selection.Borders(xlEdgeTop)
            .LineStyle = xlContinuous
            .ColorIndex = xlAutomatic
            .TintAndShade = 0
            .Weight = xlThin
        End With
        Selection.Borders(xlEdgeBottom).LineStyle = xlNone
        Selection.Borders(xlEdgeRight).LineStyle = xlNone
        Selection.Borders(xlInsideVertical).LineStyle = xlNone
        Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
        ActiveCell.Range("A1").Select
        
        Do While ActiveCell.Range("A1") <> "2.Ind2"
            ActiveCell.Offset(1, 0).Range("A1").Select
        Loop
    
        Do While ActiveCell.Range("A1") <> "Constant"
            ActiveCell.Range("A1:E1").Select
            Selection.Delete Shift:=xlUp
            ActiveCell.Range("A1").Select
        Loop
        ActiveCell.Range("A1:E1").Select
        Selection.Delete Shift:=xlUp
        ActiveCell.Range("A1").Select
        
        ActiveCell.Range("A1") = "控制行业"
        ActiveCell.Range("A2") = "控制年份"
        ActiveCell.Range("B1") = "Y"
        ActiveCell.Range("B2") = "Y"
        ActiveCell.Range("C1") = "Y"
        ActiveCell.Range("C2") = "Y"
        ActiveCell.Range("D1") = "Y"
        ActiveCell.Range("D2") = "Y"
        ActiveCell.Range("E1") = "Y"
        ActiveCell.Range("E2") = "Y"
        
    End Sub
    
    展开全文
  • Set xlApp = CreateObject("Excel.Application")xlApp.DisplayAlerts = false 不显示警告 xlApp.Application = false 不显示界面 xlapp.Workbooks.add set objExcelBook = xlapp.A

    Set xlApp = CreateObject("Excel.Application")

    xlApp.DisplayAlerts = false               '不显示警告
       'xlApp.Application   = false               '不显示界面
       xlapp.Workbooks.add
       set objExcelBook   = xlapp.ActiveWorkBook
       set objExcelSheets = objExcelBook.Worksheets
       set xlSheet = objExcelBook.Sheets(1)

     

     

    EXCEL中设置边框,录制的宏

    Sub Macro1()
    '
    ' Macro1 Macro
    ' 宏由 YlmF 录制,时间: 2009-9-15 test
    '
    ' 快捷键: Ctrl+q
    '
        Range("A3:G32").Select
        Selection.Borders(xlDiagonalDown).LineStyle = xlNone
        Selection.Borders(xlDiagonalUp).LineStyle = xlNone
        With Selection.Borders(xlEdgeLeft)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlEdgeTop)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlEdgeBottom)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlEdgeRight)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlInsideVertical)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlInsideHorizontal)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
    End Sub

    运行会出现“类型不匹配: 'range'”或者“selection错误”之类的错误,所以在vb中用msgbox查看了下述的值

    'xlDiagonalDown=5
       'xlDiagonalUp=6
       'xlEdgeLeft=7
       'xlEdgeTop=8
       'xlEdgeBottom=9
       'xlEdgeRight=10
       'xlInsideVertical=11
       'xlInsideHorizontal=12

       'xlNone=-4142

      改为

    xlsheet.Range("A3","G"&startrow-1&"").Borders(xlDiagonalDown).LineStyle = xlNone

     运行出现“未知的运行时错误”的错误

    改为

    xlsheet.Range("A3","G"&startrow-1&"").Borders("5").LineStyle = "-4142"

    运行出现“不能设置类 Border 的 LineStyle 属性”的错误

     

    最后正确运行代码如下:
        xlsheet.Range("A3","G"&startrow-1&"").Borders("5").LineStyle = xlNone
          xlsheet.Range("A3","G"&startrow-1&"").Borders("6").LineStyle = xlNone
        With xlsheet.Range("A3","G"&startrow-1&"").Borders("7")
            .LineStyle = xlContinuous
            .Weight = "2" 'xlThin
            .ColorIndex = xlAutomatic
        End With
        With xlsheet.Range("A3","G"&startrow-1&"").Borders("8")
            .LineStyle = xlContinuous
            .Weight = "2"  'xlThin
            .ColorIndex = xlAutomatic
        End With
        With xlsheet.Range("A3","G"&startrow-1&"").Borders("9")
            .LineStyle = xlContinuous
            .Weight = "2" 'xlThin
            .ColorIndex = xlAutomatic
        End With
        With xlsheet.Range("A3","G"&startrow-1&"").Borders("10")
            .LineStyle = xlContinuous
            .Weight = "2"  'xlThin
            .ColorIndex = xlAutomatic
        End With
        With xlsheet.Range("A3","G"&startrow-1&"").Borders("11")
            .LineStyle = xlContinuous
            .Weight = "2"  'xlThin
            .ColorIndex = xlAutomatic
        End With
        With xlsheet.Range("A3","G"&startrow-1&"").Borders("12")
            .LineStyle = xlContinuous
            .Weight = "2"  'xlThin
            .ColorIndex = xlAutomatic
        End With

     

     

    代码正确了,但是关于录制的宏在asp中应用还是有很多疑问,比如上例中 .Weight = "2" ,如果是.Weight = xlThin就出现“不能设置类 Border 的 Weight属性”的错误,这个和

    xlsheet.Range("A3","G"&startrow-1&"").Borders("5").LineStyle = "-4142" 不一致

    贴出来,共勉共勉

    展开全文
  • C# 导出 导入excel 调用操作 得到excel页面信息等
  • excel宏实现导出超时的人员名单,用宏实现 Sub 按钮3_Click() Dim strReceiveUser As String strReceiveUser = "" Dim i As Integer, sht As Worksheet j = Sheet1.Cells.SpecialCells(xlCellTypeLastCell...
  • 按钮“导出excel”实现从页面导出excel文件, (注:此导出的excel是通过模板demo.xls导出的,模板写了一个求和,执行:打开导出的excel文件打开 工具---执行(求和);即可看到total处显示求和结果,实现...
  • 【Office】Excel如何导出宏

    千次阅读 2020-02-09 10:21:07
    ①打开带有Excel,“开发工具”-“”- 选择需要导出 -“编辑”,打开的编辑窗口 (点击编辑报错‘不能在隐藏工作簿中编辑。请选定"取消窗口隐藏”命令以显示工作簿’的请看这里解决...

    步骤:

    ①打开带有宏的Excel,“开发工具”-“宏”- 选择需要导出的宏 -“编辑”,打开宏的编辑窗口

    (点击编辑报错‘不能在隐藏工作簿中编辑宏。请选定"取消窗口隐藏”命令以显示工作簿’的请看这里解决https://blog.csdn.net/xiang0731/article/details/104231923

    ②“文件”-“导出文件”

    ③注意这里要保存为.bas格式的文件

    ④生成的.bas文件保存下来就可以了,搞定

    展开全文
  • 从Access中导出Excel文件的

    千次阅读 2012-07-05 16:05:23
    最近需要从Access中抽出一些... 将制定Table中的数据,作为检索条件,分别抽出数据并导出Excel文件中。 Option Compare Database Private Sub export() On Error GoTo ERROR_HANDLER Dim daoDB As Dat

    最近需要从Access中抽出一些数据,手工操作太麻烦,所以写了宏来帮忙。


    作用:

      将制定Table中的数据,作为检索条件,分别抽出数据并导出到Excel文件中。


    Option Compare Database
    
    Private Sub export()
    
        On Error GoTo ERROR_HANDLER
        
        Dim daoDB As Database
        Dim strac As String
        Dim varxls As Variant
        Dim rsErrSet As Recordset
        Dim strKey As String
        
        ' 准备环境
        Set daoDB = DBEngine.Workspaces(0).Databases(0)
        
        ' 取得需要处理的数据
        Set rsErrSet = daoDB.OpenRecordset("ERRLOG", dbOpenForwardOnly, dbReadOnly)
        
        Do Until rsErrSet.EOF
            Debug.Print rsErrSet!errcode & " " & rsErrSet!Key
            ' 生成导出Excel的Sheet名
            strac = rsErrSet!ID & "数据"
            If rsErrSet!Key <> "" Then
                ' 特殊文字替换
                strKey = Replace(rsErrSet!Key, "[", "*")
                strKey = Replace(strKey, "]", "")
                ' 做成检索
                daoDB.CreateQueryDef strac, _
                                     "SELECT [LIST].* FROM LIST WHERE [LIST].errcode like '*" & Right(rsErrSet!errcode, 8) & _
                                     "' and [LIST].msg like '*" & strKey & "*';"
            Else
                'クエリーの新規作成
                daoDB.CreateQueryDef strac, _
                                     "SELECT [LIST].* FROM LIST WHERE [LIST].errcode like '*" & Right(rsErrSet!errcode, 8) & "';"
            End If
    
            ' 设定导出文件名
            varxls = CurrentProject.Path & "\data.xls"
            ' 导出
            DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, strac, varxls, True
            
            ' 删除检索
            daoDB.QueryDefs.Delete strac
            
            rsErrSet.MoveNext
        Loop
        ' 关闭
        daoDB.Close
        MsgBox "成功!"
        
        Exit Sub
        
    ERROR_HANDLER:
    
        Debug.Print Err.Description
        MsgBox vbCrLf & Err.Description, vbCritical
    
    End Sub



    展开全文
  • 主要介绍了c#执行excel宏模版的方法,导出Excel模版的代码如下,大家参考使用吧
  • 前端导出excel

    2019-10-17 16:55:43
    <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8"> <...JS读取和导出excel示例<...meta name="description" content="使用sheetjs读取和导出excel...
  • LotusScript导出Excel文件

    2018-08-24 17:33:42
    B/S模式通过LotusScript直接导出EXCEL文件,文件中只有最重要的输出部分,其余需自行补充完成,其中Head和Sheet样式可以通过Excel录入获取
  • SheetJS中文文档-js导出Excel脚本库

    万次阅读 2021-01-08 11:33:13
    一般结构 单元格对象 数据类型 日期类型 数据表对象 工作表对象 图表对象 对象 对话表对象 工作簿对象 工作簿的文件属性 工作簿级别的属性 定义名称 查看工作表 其他的工作簿属性 文档特点 公式 列属性 行属性 ...
  • 导出Excel 2007文件

    2010-05-20 11:00:01
    里面包含多种导出excel 2007文件的组件,aspose不依赖于微软的office组件,能很方便的操作excel
  • spring mvc 导出Excel

    2017-03-15 16:59:05
    spring mvc 导出Excel(自己项目所需,写下来做做笔记,其中有的内容是从网上收集的资料,并非原创)1、创建工具类ExcelUtilpackage ***.***.tools;import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org....
  • freemarker导出excel

    2015-04-19 06:51:38
    freemarker导出excel  博客分类: J2EE    . 最近在做财务方面的报表,自然也就需要导出excel,看了网上的一些方案,比如poi,或是active控件,不是浏览器限制就是写起来复杂,要引进一大堆jar包,还不公用...
  • java封装导出Excel

    千次阅读 热门讨论 2016-01-25 09:17:40
    最近做项目的过程中需要实现导出excel,他们有已经写好的实现,但是只是针对他们业务逻辑的,所以我就想能不能封装一个通用的方法,于是找出之前用过的导出方法,然后照着封装了一个,还可以。但是两个方法也有不同...
  • 学习笔记:Excel导出宏

    千次阅读 2013-09-24 16:48:09
    /// 导出excel到指定文件的指定数index,并执行 /// /// <param name="dgv"></param> /// <param name="sheetIndex"></param> /// <param name="filename"></param> /// <param name="mathname"></param> /...
  • 在浏览器中将数据导出excel或WPS的电子表格中是程序开发中经常在实现的功能,提供数据导出,详细的功能注释让你一目了然,如Excel文件的操作,工作表、工作簿操作,单元格操作,表格格式(表格线、行高、列宽、...
  • 1.免费工具导出TXT,可导出加密税号信息2.用我自制EXCEL宏将TXT转成EXCEL,3.免费快捷,同类工具要1200元
  • 这几天结尾一个项目,项目最后客户要导入数据,一个...自动导出excel的图片到外部的一个文件夹,然后上传到服务器。 Function clearChar(no As String) no = Replace(no, Chr(10), "") no = Replace(no, Chr(13), "")
  • 1.将数据有Excel导入数据库或者将数据库数据导入Excel,作为业务常用需求。 2.实现的方式主要有三种技术:POI,JXL,FASTExcel,这里对比前两种 (1)JXL:优缺点 <1>操作简单,效率低,部分支持 <2>可以修饰...
  • java导出excel图表数据

    千次阅读 2015-12-16 10:48:25
    导出excel图表 因为客户的要求,需要在导出报表时Excel中要有图表,图表要跟据数据的条数来自动增加。因为项目组内之前没有人做过,一开始大家方向统一都转向用Java操作excel的宏来实现,用excel宏实现必须懂VB,...
  • 关于poi导出新建excel导出已有的excel新建excel导出已有的excel(一般如果你要下载有公式的excel,都会在项目存一份excel,到时候只需要读出来就行了,不用新建带公式的excel) 新建excel 导出已有的excel...
  • 导出excel表功能

    2019-10-04 18:26:56
    前台:<asp:ButtonID="btndao"runat="server"Text="导出excel文件"onclick="btndao_Click"></asp:Button>。cs: protectedvoidbtndao_Click(objectsender,EventArgse) { this.Exp...
  • 导出功能必须使用office中EXCEl对象,整个操作如同在操作EXCEl一样,建立EXCEl应用----建立工作簿---建立sheet表单页, 代码实现过程中,如果想对单元格实现一些操作,或者汇总功能,可以先使用,EXCEl中的宏来操作...
  • java工具类之导出Excel

    千次阅读 2016-02-28 13:58:23
    在我们的项目中经常会用到导出excel,这里就列举一下大家最常用到的导出EXCEL技术,在说一下自己设计的工具类。对POI不感兴趣的人,可以直接跳到最下面的工具类; 什么是Apache POI? Apache POI是一种流行的API...
  • 导出excel 带图表 带有图表的Excel座位计划 (Excel Seating Plan with Charts) If you're planning a wedding, or another type of event, you might need a seating plan. Get this free Excel seating plan with ...
  • Excel 调用vba宏导出

    千次阅读 2019-06-14 14:12:34
     /// 执行Excel VBA帮助类  ///  public class ExcelMacroHelper  {  ///  /// 执行Excel中的  ///  /// <param name="excelFilePath">Excel文件路径  /// 名称  /// 参数组  /// ...
  • 使用Python导出Excel图表以及导出为图片的方法本篇讲下如何使用纯python代码将excel 中的图表导出为图片。这里需要使用的模块有win32com、pythoncom模块。网上经查询有人已经写好的模块pyxlchart,具体代码如下:...
  • 转载自。 ... 1.介绍 ...Jxls是一个小而易用的Java库, 它用于根据excel模板文件生成对应的excel数据文件. 使用Jxls只需要几行代码就可以建立非常复杂的excel报表...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,588
精华内容 1,435
关键字:

如何导出excel宏