說明(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中的方法,參數不用帶括號,若是帶括號,會報「須要=」的錯誤。除非是要把方法的返回值賦值給一個變量,才須要加括號。