生活随笔
收集整理的這篇文章主要介紹了
VBA函数传递参数方式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? ? ? VBA函數傳遞參數值時分為Byval(值傳遞)和Byref(地址傳遞),用法上,分別相當于C/C++的值傳遞使用方法和引用傳遞使用方法。在VBA中,參數傳遞的默認方式是Byref,因為本質想法是對于相同命名的參數,在系統中采用同一個數值。
'獲取非空行
Function GetNotNullRow(ByVal iStartRow, ByRef iRow)Dim Rng As RangeFor Each Rng In Range("B" & iStartRow & ":" & "P" & 100)If Rng <> "" TheniRow = Rng.RowExit ForEnd IfNext
End Function
'附件8
Sub Annex8(strWorkbookName As String)Dim SourseBook As Workbook '源工作簿Dim MainBook As Workbook '主工作簿Dim strSheetName As String '工作表名Dim iFoundRow As Integer '查找到數據的行Dim iMainBookStartRow As Integer '主工作簿開始行Dim iKeyRow As Integer '關鍵字行Dim strKeyRow As String '關鍵字行的關鍵字符Set SourseBook = Workbooks(strWorkbookName)Set MainBook = Workbooks(strMainWorkbookName)strSheetName = "附件8" '工作表名strKeyRow = "統計范圍" '關鍵字符Windows(strWorkbookName).ActivateiKeyRow = ActiveWorkbook.Sheets(strSheetName).Range("A:A").Find(strKeyRow).RowCall GetNotNullRow(iKeyRow + 2 + 1, iFoundRow) '+2因為開始行關鍵字為三和一合并單元格,+1下一行開始Windows(strMainWorkbookName).ActivateiMainBookStartRow = ActiveWorkbook.Sheets(strSheetName).Range("A65535").End(xlUp).Row + 1 '+1下一行開始If iMainBookStartRow - 1 = iKeyRow TheniMainBookStartRow = iMainBookStartRow + 2 '開始行關鍵字為三和一合并單元格,第一次添加數據需+2End IfSourseBook.Sheets(strSheetName).Rows(iFoundRow).Copy MainBook.Sheets(strSheetName).Range("A" & iMainBookStartRow)
End Sub '從一個工作簿拷貝到另一個工作簿
總結
以上是生活随笔為你收集整理的VBA函数传递参数方式的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。