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

VBA二次学习笔记(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
VBA二次学习笔记(1)——文件操作

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

VBA二次学习笔记(1)——文件操作
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
VBA二次学习笔记(1)——文件操作

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

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

VBA二次学习笔记(1)——文件操作
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
VBA二次学习笔记(1)——文件操作

 4. 复制和删除文件

VBA二次学习笔记(1)——文件操作
Sub test6()
    Dim path As String
    path = ThisWorkbook.path
    
    FileCopy path + "\1.xlsx", path + "\2.xlsx"
    MsgBox "已复制"
    Kill path + "/2.xlsx"
    MsgBox "已删除"
End Sub
VBA二次学习笔记(1)——文件操作

 

注意:

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

(2)vbCrLf的意思:

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

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

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

相关文章:

  • 2021-11-04
  • 2022-12-23
  • 2021-11-02
  • 2021-06-13
  • 2021-11-29
  • 2021-05-15
  • 2022-02-26
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-11-20
  • 2021-11-14
相关资源
相似解决方案