zoukankan      html  css  js  c++  java
  • VBA二次学习笔记(1)——文件操作

    1. 判断文件是否存在,新建文件,另存为

    复制代码
    Sub test3()
        '判断文件是否存在,新建文件
        Dim wb As Workbook
        Dim cPath As String
        cPath = ActiveWorkbook.Path
        
        If Len(Dir(cPath + "1.xlsx")) = 0 Then
            Set wb = Workbooks.Add
            ActiveWorkbook.SaveAs (cPath + "1.xlsx")
            MsgBox ("1.xlsx" + "已创建")
        Else
            MsgBox ("1.xlsx" + "已存在")
        End If
        
    End Sub
    复制代码

     2. 打开文件,修改内容,保存/关闭

    复制代码
    Sub test4()
        '打开文件并修改
        Dim wb As Workbook
        Set wb = Workbooks.Open(ActiveWorkbook.Path + "1.xlsx")
        wb.Sheets("sheet1").Range("a1") = "123"
        wb.Save
        wb.Close '直接关闭多省心
         'Windows("1.xlsx").Visible = True'感觉没什么卵用
        'Application.Visible = False’不能用这个,所有的工作簿都隐藏了,只剩VBA编辑器
    End Sub
    复制代码

    3. 判断文件是否已经打开

    这里采用的是遍历所有打开的工作簿,另一种方法是直接把这个名字的工作簿赋值给对象,如果报错就说明没打开这个文件(还是有点麻烦)

    复制代码
    Sub test5()
        Dim flag As Boolean
        
        For Each wb In Workbooks
            If wb.Name = "1.xlsx" Then
                flag = True
                Exit For
            End If
        Next
        
        If flag = True Then
            MsgBox ("1.xlsx" + "已经打开")
        Else
            MsgBox ("1.xlsx" + "没有打开")
        End If
        
    End Sub
    复制代码

     4. 复制和删除文件

    复制代码
    Sub test6()
        Dim path As String
        path = ThisWorkbook.path
        
        FileCopy path + "1.xlsx", path + "2.xlsx"
        MsgBox "已复制"
        Kill path + "/2.xlsx"
        MsgBox "已删除"
    End Sub
    复制代码

    注意:

    (1)ActiveWorkbook是正在操作的工作簿,ThisWorkbook是VBA所在的工作簿

    (2)vbCrLf的意思:

      回车 本义是光标重新回到本行开头,r的英文return,控制字符可以写成CR,即Carriage Return

      换行 本义是光标往下一行(不一定到下一行行首),n的英文newline,控制字符可以写成LF,即Line Feed

    (3)VBA中的方法,参数不用带括号,如果带括号,会报“需要=”的错误。除非是要把方法的返回值赋值给一个变量,才需要加括号。

  • 相关阅读:
    第九篇:网络编程
    第十篇:并发编程
    Python-GIL 进程池 线程池
    Python-生产者消费模型 线程
    Python-互斥锁 进程间通讯
    第八篇:异常处理
    第六篇:面向对象
    第四篇:模块与包
    【转】英语中的并列连词,只知道 and 和 but?11组并列连词,一篇搞定!
    【转】英语中的从属连词,28个,一篇搞定(句子结构2)
  • 原文地址:https://www.cnblogs.com/medik/p/10989715.html
Copyright © 2011-2022 走看看