VBA二次学习笔记(1)——文件操做

说明(2018-9-1 11:20:46):编程

1. 上班三个月了,累的一逼,真的是钱少事多离家远,天天早上六点起,晚上八点回。哎,少壮不努力啊!编辑器

2. 三个月没写博客了,上一篇已是5.29的了,真的是整整三个月了,这期间一点C#的东西都没看,代码也没敲,估计又得从新来一遍了。学习

3. 公司电脑不能本身装软件,因此只能用VBA编程了,昨天看到同事在写VBA的做业,就要了一份过来准备周末写完,周一去装个逼。回家下载下来以后,眉头一皱,发现事情并不简单!我如今连怎么打开文件都要查查资料!spa

4. 么得办法啊!从新打开了硬盘里尘封已久的教学视频,由于以前写过一次VBA学习笔记了,此次就叫作二次学习了,但愿有始有终吧!code

正文:视频

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. 打开文件,修改内容,保存/关闭blog

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. 判断文件是否已经打开博客

这里采用的是遍历全部打开的工做簿,另外一种方法是直接把这个名字的工做簿赋值给对象,若是报错就说明没打开这个文件(仍是有点麻烦)it

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 本义是光标从新回到本行开头,r的英文return,控制字符能够写成CR,即Carriage Return

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

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

相关文章
相关标签/搜索