VBA程式語法筆記(1)
1.function 函數建立及使用
函數建立
Function lastRow(sheetName, rangeName)
Sheets(sheetName).Select
Dim rowNum, i As Long
lastRow = Range(rangeName).End(xlDown).Row '最後一列
End Function
函數使用
RowSize = lastRow("工作表1", "B6")
即可回傳函數結果
2.sub函數使用
sub函數建立
Sub get_month(FileName)
Windows(FileName).Activate
Sheets("封面").Select
month = Cells(6, 3)
End Sub
函數使用
get_month FileName
注意!! VBA的sub function 要使用帶入參數時語法為 sub function +空格+參數,如上所示
與function函數不同的地方為,function函數可以產生回傳值而sub函數不行
Excel VBA 程式設計教學:函數(Function)與子程序(Sub) – G. T. Wang
3.Array
Dim refname As Variant
refname = Worksheets("工作表1").Range("B6:B100") 'RowSize為一個變數
將工作表1中的B6到B100的範圍存入refname 陣列中
陣列的起始值為1
Cells(i + 9, 2) = refname(items, 1)'items,i為變數
因為此陣列為1維陣列所以refname陣列會是(items, 1),如果有2行則(items, 2)以此類推
4.儲存格讀取
month = Cells(列, 行)
其中列代表的就是excel中的數字位於第幾個,行表示excel中的英文字位於第幾個
5.debug.print
Debug.Print "Hello World"
6.讀取資料夾內excel
Dim FileName As String, sht As Worksheet, wb As Workbook
Dim Erow As Long, fn As String, arr As Variant
FileName = Dir(ThisWorkbook.Path & "\\*.xlsm")'定義檔案路徑
Do While FileName <> ""
If FileName <> ThisWorkbook.name Then '判斷檔案是否為本活頁簿
'MsgBox FileName
Dim src As Workbook
Set src = Workbooks.Open(ThisWorkbook.Path & "\\" & FileName)
Windows(FileName).Activate
End If
FileName = Dir()'
Loop
7.讀取資料夾內所有檔名
Dim FSO As Object
Dim Folder As Object
Dim File As Object
Dim i As Integer
Set FSO = CreateObject("Scripting.FileSystemObject") '創建 Scripting.FileSystemObject物件操作檔案系統
Set Folder = FSO.GetFolder(Range("A2").Value) '使用GetFolder方法來獲取指定路徑下的資料夾物件,本案設定路徑儲存於A2位置,可依使用者自行修改
'用迴圈讀取檔案名稱並從A6開始做顯示,位置可以依使用者自行修正
For Each File In Folder.Files
Cells(i + 6, 1) = Split(File.Name, ".pdf") '本案因要整理pdf檔案故將.pdf的副檔名做刪除
i = i + 1
Next File