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

輕鬆取得資料夾內所有檔案名稱的VBA程式 – 提升你的工作效率! – fRyanBlog

Similar Posts