'定義變數
Dim EXCEL行程 As New Excel.Application, EXCEL作業簿 As New Excel.Workbook, EXCEL作業表 As New Excel.Worksheet
Set EXCEL行程 = CreateObject("Excel.Application") '創建EXCEL物件
EXCEL行程.DisplayAlerts = False '屏蔽彈出對話框
'打開作業簿,(或新建)
Set EXCEL作業簿 = EXCEL行程.Workbooks.Open(“C:\123.XLS”)' 打開C:\123.XLS
或者 Set EXCEL作業簿 = EXCEL行程.Workbooks.add(“C:\123.XLS”)' 以C:\123.XLS為樣本復制出一個一模一樣的表格檔案(作業簿)
還有一種就是 Set EXCEL作業簿 = EXCEL行程.Workbooks.add '創建一個新的作業簿
Set EXCEL作業表 = EXCEL作業簿.Worksheets(1) '將第一張表設定活動作業表(當前操作表)
或者 Set EXCEL作業表 = EXCEL作業簿.Worksheets(“sheet1”)'將名稱為sheet1的表設定活動作業表(當前操作表)
a=EXCEL作業表.Range("A3")'取"A3單元格的值賦值給變數a
EXCEL作業表.Range("A3")="123ABC"'將"A3單元格的值變成123ABC
特別需要注意的是EXCEL作業表.Range("A3")="123ABC" 不能寫成 Range("A3")="123ABC" 因為如果這樣寫在EXCEL行程空間被清除后再次執行的時候會提示錯誤(這個就是網路上問的最多的問題:為什么EXCEL第一次運行沒毛病,第二次運行就報錯!!!因為行程結束后記憶體空間釋放了,但是在程式整體結束前參考空間并不會釋放,這個時候如果不強行指定你要操作的前綴,也就是必須要告訴程式,你要訪問的是哪個作業簿的單元格,則程式會訪問默認的參考單元格,也就是說第一次打開時候的那個檔案的單元格,所以會報遠程服務器不可用(因為那個檔案已經關閉了)或者報單元格錯誤(因為關閉了,單元格自然也就不存在了))
下面是單元格操作
EXCEL作業表.Range("A3")="123ABC"'將"A3單元格的值變成123ABC
EXCEL作業表.Cells(1, 2) = "bbv"'將第一行第二列的單元格的值變成bbv
下面是區域操作
EXCEL作業表.copy '復制整個作業表
EXCEL作業表.Copy EXCEL作業簿.Worksheets(1) '創建一個作業表副本到 EXCEL作業簿 下
EXCEL作業表.Range("A3").copy'復制A3這個單元格
EXCEL作業表.Range(EXCEL作業表.Cells(1, 2), EXCEL作業表.Cells(5, 8)).Copy 這個是復制從第1行第2列到第5行第8列區間內的單元格,這里需要注意的還是那個問題就是作業表的前綴必須要指明,所以如果將EXCEL作業表.Cells(1, 2)寫成Cells(1, 2)依舊會出現第二次運行報錯
例子:
EXCEL作業表.Range("A3").copy (copy復制命令)
EXCEL作業表.Range("A9").Paste 將A3單元格復制給A9(Paste粘貼命令)
EXCEL作業表.Rows("1:3").Delete Shift:=xlUp 洗掉第1到3行,填補模式Shift:=xlUp 為下方記錄上移
EXCEL作業表.Columns("2:4").Delete Shift:=xlToLeft 洗掉第2列到第4列 Shift:=xlToLeft 為右方列像左側填補
EXCEL作業表.Range("A1:B3").Merge '將單元格A1至B3合并
EXCEL作業表.UsedRange.Columns.Count 回傳有效列數,具體解釋同下
EXCEL作業表.UsedRange.Rows.Count 這個命令會回傳當前表的有效行數,也就是說我們想知道這個表一共被編輯了多少行,這個命令回傳一個整數值,代表這個表有多少行是被編輯過的,在使用這個命令的時候要注意的是“被編輯過”這幾個字,因為復制幾個空的單元格也屬于被編輯過,雖然它沒有資料你也看不出來但它真實存在
EXCEL作業表.Range("A1").Font.Size = 22 '設定A1單元格字體大小(這些設定可以通過錄制VBA來取得,不一一列出)
EXCEL作業簿 .Save '保存作業表
EXCEL作業表.PageSetup.Zoom = False '取消縮放
EXCEL作業表.PageSetup.FitToPagesWide = 1 '一頁寬
EXCEL作業表.PageSetup.FitToPagesTall = 1 '一頁高,如果不需要一頁高則=0
EXCEL物件.ActiveWorkbook.PrintOut '列印整個作業簿一份,還有其他函式,篇幅太大可自行百度,可以控制列印
EXCEL作業簿.Close False '關閉當前作業簿,(False 不保存退出 這個是對應上面 EXCEL行程.DisplayAlerts = False '屏蔽彈出對話框 這個命令,因為彈出對話框已經被屏蔽了,這個時候如果表格有改動而我們沒對表格執行SAVE命令的話會忽略更改并關閉表格,在CLOSE這個位置控制False或者True來通知程式退出前是否保存)
EXCEL行程.Quit 關閉EXCEL行程
Set EXCEL作業表 = Nothing '釋放 “EXCEL作業表”這個變數內的資源,將記憶體還給系統(這里有個誤區就是第一次運行第二次例外,很多朋友都說是這幾個命令沒有造成的,其實關系不大,這個命令只是把我們定義的這個變數所占用的記憶體空間還給空間,就好像定義個變數用完了不用了的時候把變數內容釋放了)
Set EXCEL作業簿 = Nothing '釋放 “EXCEL作業簿”這個變數內的資源
Set EXCEL行程 = Nothing '釋放 “EXCEL行程”這個變數內的資源
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/253216.html
標籤:VB基礎類
下一篇:求教大神 橫向粘貼問題
