精华内容
下载资源
问答
  • 将TXT文档的数据按照一定的格式写入Excel,并跟据日期或者特定条件可以查询数据,并自动绘制曲线图!不含任何空间,纯代代码,方便移植。
  • vba 创建excel 文件

    万次阅读 2017-02-10 10:01:12
    sub Create(paths,files) Dim w As Workbook  Set w = Application.Workbooks.Add ... w.SaveAs Filename:=paths & "\" & files & ".xlsx" '在此输入新建工作簿的文件名,包括完整路径和扩展名

    sub Create(paths,files)

    Dim w As Workbook
        Set w = Application.Workbooks.Add
        On Error Resume Next
        w.SaveAs Filename:=paths & "\" & files & ".xlsx"             '在此输入新建工作簿的文件名,包括完整路径和扩展名
        On Error Resume Next
        Sheets("sheet1").name = files                                              '将sheet重命名为文件名

    call other
        w.Save
        w.Close

    end sub

    sub other

    msgbox "其他功能"

    end sub

    展开全文
  • 已有一组Excel表格数据,使用VBA快速批量建文件夹 不知道标题怎么写。 已经有了这样一组数据 然后需要根据这两组数据新建文件夹,代码如下 Sub 建文件夹() Dim i As Integer '用于下方数组 Dim Arr1(), Arr2() ...

    已有一组Excel表格数据,使用VBA快速批量建文件夹

    不知道标题怎么写。
    已经有了这样一组数据
    在这里插入图片描述



    然后需要根据这两组数据新建文件夹,代码如下

    Sub 建文件夹()
        Dim i As Integer '用于下方数组
        Dim Arr1(), Arr2() '定义一个数组,不能定义大小和类型
        Dim Fso, Fld    '定义文件路径
        Dim rowmax  '找到数据的行数
        
        start_time = Timer  '计时开始
        
    '数据的行数
        rowmax = [A1048576].End(xlUp).Row
    '把两列数据分别赋值给两个个数组
        Arr1 = Range("A2:A" & rowmax)
        Arr2 = Range("B2:B" & rowmax)
    '选择建文件夹的路径
        Set Fso = CreateObject("Scripting.FileSystemObject")
        Set Fld = Fso.getfolder(CreateObject("Shell.Application").BrowseForFolder(0, "请选择需要创建文件夹的根目录", 0, "").Self.Path & "")
    
    '开始批量新建文件夹
        For i = 1 To UBound(Arr1)
            FolderName = Arr1(i, 1) & " " & Arr2(i, 1)
            If Dir(Fld & "\" & FolderName, vbDirectory) = vbNullString Then  '如果文件夹不存在,则新建
            VBA.MkDir (Fld & "\" & FolderName)
            End If
        Next    
    '建好了
    
        cost_time = Timer - start_time  '计时结束,计算用时
        Range("D6") = cost_time
    End Sub 
    

    完成
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 将所有要复制的excel文件放到同一个文件夹下边。新建一个excel文件,在sheet1处右击鼠标,打开代码窗口,复制上述代码到代码窗口,点击运行即可。
  • 此脚本用于根据sheet1中的第一列从第三行开始的数据新建工作簿并重命名 '2.复制第一列和对应的列的值 '3.调整新建工作簿的列宽 ScreenUpdating = False '关闭屏幕刷新 Dim sCount As Long '列数 Dim sCol As ...
    Sub addRe()
        '1.此脚本用于根据sheet1中的第一列从第三行开始的数据新建工作簿并重命名
        '2.复制第一列和对应的列的值
        '3.调整新建工作簿的列宽
        ScreenUpdating = False '关闭屏幕刷新
        Dim sCount As Long     '列数
        Dim sCol As Long       '行数
    
        Dim rnG1 As Range '第一列区域
        Dim rnG2 As Range '第二列区域
        Dim rn As Range   '第一列的开头
        Dim arr1() '第一列的数组(静态)
        Dim arr2() '第二列的数组(动态)
    
        Set rn = Sheet1.Cells(2, 1) '读出新工作簿要用的第一列的开头
        Set rnG1 = Sheet1.Range(rn, rn.End(xlDown)) '读出新工作簿要用的第一列的区域
            sCount = Sheet1.Range("A2").CurrentRegion.Columns.Count - 1 '读出行数
            sCol = rnG1.Rows.Count '读行数
            arr1 = rnG1 '第一列
        Dim arrName() '名字数组
        ReDim arrName(sCount - 1) '调整数组大小
        
        For i = 1 To sCount
            
            Set rn = Sheet1.Cells(2, i + 1) '读出新工作簿要用的第二列的开头
            Set rnG2 = Sheet1.Range(rn, rn.End(xlDown)) '读出新工作簿要用的第二列的区域
            arr2 = rnG2 '转换为数组
            Sheet1.Activate
            Sheets.Add after:=ActiveSheet '新建工作簿
            
            ActiveSheet.Name = Sheet1.Cells(2, i + 1) '工作簿重命名
            arrName(i - 1) = ActiveSheet.Name '记录新建工作簿的名称
            ActiveSheet.Range(Cells(2, 1), Cells(sCol, 1)) = arr1 '第一列赋值
            ActiveSheet.Range(Cells(2, 2), Cells(sCol, 2)) = arr2 '第二列赋值
            
            Columns("A:B").EntireColumn.AutoFit '调整选中所有新建的工作簿AB列的列宽
        Next i
    
        Sheet1.Activate '回到Sheet1工作簿
        ScreenUpdating = True '打开屏幕刷新
    End Sub
    
    
    

    在我写完上面的代码之后很快就被啪啪打脸了:

    下面这个简单高效,结果一样还保留了格式。。。

    Sub fz()
        Dim a As Byte
        For a = 2 To Cells(2, Columns.Count).End(xlToLeft).Column
            With Sheets.Add(after:=Sheets(Sheets.Count))
                .Name = Worksheets(1).Cells(2, a)
                Worksheets(1).Select
                Worksheets(1).Columns(1).Copy .Range("a1")
                Worksheets(1).Columns(a).Copy .Range("b1")
            End With
        Next a
    End Sub
    

     

     

    表格内容大概是这样的:

         
    时间J2-01(JD0280)_位移(mm)J2-02(JD0267)_位移(mm)J2-03(JD0282)_位移(mm)J2-04(JD0275)_位移(mm)
    2019-07-30-0.14-0.24-0.2-0.26
    2019-07-29-0.14-0.24-0.2-0.26
    2019-07-28-0.14-0.23-0.19-0.26
    2019-07-27-0.14-0.23-0.19-0.26
    2019-07-26-0.13-0.23-0.19-0.26
    2019-07-25-0.13-0.23-0.18-0.25
    2019-07-24-0.13-0.22-0.18-0.25
    2019-07-23-0.13-0.22-0.18-0.25
    2019-07-22-0.13-0.22-0.17-0.24
    2019-07-21-0.13-0.22-0.17-0.25
    2019-07-20-0.12-0.21-0.16-0.24
    2019-07-19-0.12-0.21-0.15-0.24
    2019-07-18-0.12-0.2-0.14-0.23
    2019-07-17-0.12-0.21-0.16-0.24
    2019-07-16-0.12-0.2-0.14-0.23
    2019-07-15-0.11-0.19-0.12-0.22
    2019-07-14-0.11-0.19-0.11-0.21
    2019-07-13-0.1-0.18-0.11-0.21
    2019-07-12-0.11-0.19-0.12-0.21
    2019-07-11-0.11-0.19-0.12-0.22
    2019-07-10-0.11-0.19-0.11-0.21
    2019-07-09-0.1-0.18-0.1-0.21
    2019-07-08-0.1-0.18-0.1-0.21
    2019-07-07-0.1-0.18-0.1-0.21
    2019-07-06-0.1-0.18-0.1-0.21

    结果是这样的:

    展开全文
  • 上一篇讲的是写一个带有标题头的excel文件,其实是为本篇文章打下基础,这次要说的是先读取某个路径下的excel文件,如果为空,则直接创建一个,直接写入,不为空,先删除掉原有数据,再进行写入 public void write...

    上一篇讲的是写一个带有标题头的excel文件,其实是为本篇文章打下基础,这次要说的是先读取某个路径下的excel文件,如果为空,则直接创建一个,直接写入,不为空,先删除掉原有数据,再进行写入
    public void writeExcel(List dataList, String personid) throws UnsupportedEncodingException {
    OutputStream out = null;
    //通过类加载器获取resource资源的路径,由于获取到的只能是classes文件下的,所以适当的做个处理
    String path1 = this.getClass().getClassLoader().getResource("").getPath().replaceAll(“WEB-INF/classes/”, “”);
    String filename = personid + “.xlsx”;
    String path = path1 + “template/” + filename;
    try {

        // 读取Excel文档
        File finalXlsxFile = new File(path);
        //如果之前已存在改用户的预览excel,直接读取并删除信息后重新写入,如果不存在该用户的文档,则先创建一个excel,再进行信息写入
        if (!finalXlsxFile.exists()) {
            CreateBlankExcel(path);
        }
        Workbook workBook = getWorkbok(finalXlsxFile);
        // sheet 对应一个工作页
        Sheet sheet = workBook.getSheetAt(0);
        /**
         * 删除原有数据,除了属性列
         */
        int rowNumber = sheet.getLastRowNum();    // 第一行从0开始算
        //System.out.println("原始数据总行数,除属性列:" + rowNumber);
        for (int i = 1; i <= rowNumber; i++) {
            Row row = sheet.getRow(i);
            sheet.removeRow(row);
        }
        /**
         * 往Excel中写新数据
         */
        for (int j = 0; j < dataList.size(); j++) {
            // 创建一行:从第二行开始,跳过属性列
            Row row = sheet.createRow(j + 1);
            for (int k = 0; k < 1; k++) {
                // 在一行内循环
                TmpPayments tmpPayments = dataList.get(j);
                Cell first = row.createCell(0);
                first.setCellValue(tmpPayments.getOrders());
    
                Cell second = row.createCell(1);
                second.setCellValue(tmpPayments.getOrgid());
    
                Cell third = row.createCell(2);
                third.setCellValue(tmpPayments.getPaybankaccount());
    
                Cell forth = row.createCell(3);
                forth.setCellValue(tmpPayments.getPaytypeid());
    
                Cell fifth = row.createCell(4);
                fifth.setCellValue(tmpPayments.getSettlementmode());
    
                Cell sixth = row.createCell(5);
                sixth.setCellValue(tmpPayments.getRecbankaccountname());
    
                Cell seventh = row.createCell(6);
                seventh.setCellValue(tmpPayments.getRecbankaccount());
    
                Cell eigth = row.createCell(7);
                eigth.setCellValue(tmpPayments.getPaymoney().doubleValue());
    
                Cell ninth = row.createCell(8);
                ninth.setCellValue(tmpPayments.getReccurrencyid());
    
                Cell tenth = row.createCell(9);
                tenth.setCellValue(tmpPayments.getIsprivate());
    
                Cell eleventh = row.createCell(10);
                eleventh.setCellValue(tmpPayments.getRecbanksid());
                     SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
                if (tmpPayments.getPaydate() != null) {
                    try {
                        String date = sd.format(tmpPayments.getPaydate());
                        Cell twentyfirst = row.createCell(20);
                        twentyfirst.setCellValue(date);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
                Cell twentythsecond = row.createCell(21);
                twentythsecond.setCellValue(tmpPayments.getMsg());
    
            }
        }
        // 创建文件输出流,准备输出电子表格:这个必须有,否则你在sheet上做的任何操作都不会有效
    
        out = new FileOutputStream(path);
        workBook.write(out);
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        try {
            if (out != null) {
                out.flush();
                out.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    System.out.println("数据导出成功");
    

    }
    //通过传入过来的文件目录,读取文件

    • 判断Excel的版本,获取Workbook
    • @param in
    • @param filename
    • @return
    • @throws IOException
      */
      public static Workbook getWorkbok(File file) throws IOException {
      Workbook wb = null;
      FileInputStream in = new FileInputStream(file);
      if (file.getName().endsWith(“xls”)) { //Excel 2003
      wb = new HSSFWorkbook(in);
      } else if (file.getName().endsWith(“xlsx”)) { // Excel 2007/2010
      wb = new XSSFWorkbook(in);
      }
      return wb;
      }
    展开全文
  • EXCEL VBA 实例文件.zip

    2020-05-08 13:52:56
    EXCEL VBA 实例文件,方便实用,由浅入深.以实例来学,即学即用
  • 1、必须先安装Excel; 2、在工程中导入Excel API: ClassWizar->Add Class->选择excel.exe->选中全部->确定 自动添加excel.h、excel.cpp... API新建Excel文件时会以tpl.xls为模板。 5、新建、写入、读取Excel文件:
  • '1 判断A.Xls文件是否存在 Sub W1() If Len(Dir("D:\A.xls")) = 0 Then MsgBox "A文件不存在" Else MsgBox "A文件存在" End If End Sub'2 判断A.Xls文件是否打开 Sub W2() Dim X As Integer
  • Excel-VBA文件操作

    千次阅读 2018-10-05 02:16:29
    2、利用VBA文件处理语句来处理文件; 3、利用FileSystemObject对象来处理文件; 4、利用API函数来处理文件。 对于数据库文件,还可以利用ADO+SQL的方法操作,本文不讨论 利用Excel对象自带的方法来操作文件是最...
  • VBAExcel导出为CSV文件

    千次阅读 2020-08-08 19:34:44
    + CStr(sheetNumber) + ".csv") '通过filesystemobject新建一个csv文件 For i = 1 To totalRows '从第1行开始 ra = CStr(sht.Cells(i, 1).Value) '从第一列开始 If ra = "" Then Exit For rb = "" For j = 1 To 10 ...
  • 利用VBA快速整合多个excel文件

    万次阅读 2019-08-25 15:55:36
    心得(一):关于VBA如何把同一个文件下的所有文件的内容合并到同一个excel文件下 问题:如何把多个格式相同的excel整合到一个excel上,起初想的是可以直接用复制粘贴……但是文件有几百个将近一千个,这么做的话有点...
  • VBA 合并多个excel文件

    千次阅读 2019-05-22 18:24:58
    VBA 合并多个excel文件新建一个文件夹,把要合并的多个excel文件放入这个文件夹,再新建一个excel文件,alt+f11(即右击查看代码),双击宏里的这个sheet文件,在窗口中输入代码 Sub 合并当前目录下所有工作簿的...
  • VBA比较2个Excel文件差异工具

    千次阅读 2020-06-06 15:00:21
    vba比较2个excel差异工具 实现效果如下图: 实现原理: Sub 按钮3_Click() Dim wb1, wb2 As Workbook Dim sheetNum, colNum, rowNum As Integer Dim sheet1, Sheet2, sheetTarget As Worksheet Dim diffName ...
  • '表格第1列为企业盲号,第二列为产品盲号,第三列是源文件地址,第4类用于存放生成的文件地址,第1行为标题行 Sub CopyStdFiles() Dim outPutFolder As String Dim filePath As String Dim companyFolder As ...
  • 首先我们新建一个EXcel表,然后调用出Visual Basic,同时写入代码: Sub AddNew() Dim path As String, filepath As String filepath = ThisWorkbook.path path = filepath + "\Allsales.xls" Set NewBook = ...
  • 现在,文件夹内有一些文件,如图:我们可以根据自己的需求在Excel表格里将文件结构编写一下,如图:然后,打开VBA编辑器,加入以下代码00 Sub main()01 Dim fso02 Dim myPath$03 myPath = ThisWorkbook.Pat...
  • 这篇我们谈谈如何使用VBA打开另一个excel文件,并读取数据。那在此之前,我们测试一下,从当前excel文件读取数据的简单VBA代码。现在有一个九九乘法表的数据,如下图。 如果我们有两个乘数,需要从九九乘法表里面...
  • VBA 实现批量excel文件复制

    千次阅读 2016-05-12 12:26:00
    1 在test文件新建3个子文件夹 test1,test2,test3 2 在test1下新建li01.xlsx,li02.xlsx,hua01.xlsx,hua02.xlsx和文件夹li1 3 新建宏,并制作按钮键 4 fs.copyfile "文件路径","目标路径",True(是否覆盖重名文件)...
  • "Excel File (*.xlsx), *.xlsx,Excel File(*.xls), *.xls" , FilterIndex:=2, Title:= "请选择文件" )   If   Filename =  False   Then   Else   Workbooks.Open (Filename)   Set   ...
  • 利用VBA我们可以批量的生成或者编辑excel文件,还可以根据业务逻辑需要制作报表。 下面来介绍一些常用的操作实现 打开指定目录的spreadsheet Workbooks.Open "C:\TSG Developer BAR with Held Resources ....
  • 发现系统批量搜索Excel中的文字不好用,替换更无从谈起,于是利用...搜索是根据文件夹列表和文件夹路径逐一打开Excel文件,对检索的文本进行搜索并记录和加载超级链接,该链接定位到单元格。将加载超级链接的搜索结...
  • Excel-VBA操作文件四大方法

    万次阅读 2017-12-21 15:26:48
    在我们日常使用Excel的时候,不仅会用到当前Excel文件的数据,还经常需要访问其他的数据文件。这些数据文件可能是Excel文件、文本文 件或数据库文件等。经常有朋友会问如何在vba代码里操作这些数据文件?本文就
  • VBA读取其他Excel内容

    千次阅读 2020-11-07 22:48:36
    VBA读取其他Excel内容AccessDataBaseEngine安装Excel内容读取 采用Microsoft于2020/8/11新出的AccessDataBaseEngine(Microsoft Access 2016 数据库引擎可再发行程序包)在VBA中读取Excel内容。 AccessDataBase...
  • 使用VBA处理excel

    千次阅读 2019-05-27 22:30:47
    1. 开启宏: 文件 --》 选项 --》信任中心 --》信任中心设置 --》宏设置 --》启用所有宏 2. 在功能区显示“开发工具”: ...右击按钮,选择“指定宏...”,点击“新建”会打开VBA编辑器 4. VBA语法: ...
  • excelvba下的代码,合并当前文件夹下所有excel工作表到一个新建的工作表中,并将合并的数据进行横向铺开排列。
  • 心得(2):如何利用VBA一键更改多个excel文件为指定的名称 问题:如何一键更改相同目录下的所有excel文件的名称,改为这个excel文件名内的每个单元格的内容,如我这个因为是要统计所有比赛队伍的信息,因为大部分人的...
  • vba 创建txt文件 并且写入字符串

    万次阅读 2019-02-08 18:25:26
    有的时候,我们在操作Excel的时候, 最后常常需要输出一个记录的log,这样可以供后期追溯。 主要使用CreateTextFile方法。 Private Sub CreateTxtFile() Dim fso As Object Dim myTxt As Object Dim MyFName ...
  • excel2003的破解方式不适合excel2010,找到了vba破解vba密码就保存了一个, 其他版本的excel密码没有试验过,excel2010是一定可以...贴vba新建模块)的时候需要新建一个book,需要破解的excel也要开着,运行后就ok了
  • Excel VBA 当前文件另存为txt

    千次阅读 2019-03-14 13:24:15
    Sub saveTxt() Application.DisplayAlerts = False ThisWorkbook.SaveAs Filename:=ThisWorkbook.Path &amp; "\bom_empty.txt", _ FileFormat:=xlText, CreateBackup:=False Application.Displ...

空空如也

空空如也

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

vba新建excel文件