生活随笔
收集整理的這篇文章主要介紹了
VBA函数传递参数方式
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
? ? ? ? VBA函數(shù)傳遞參數(shù)值時分為Byval(值傳遞)和Byref(地址傳遞),用法上,分別相當(dāng)于C/C++的值傳遞使用方法和引用傳遞使用方法。在VBA中,參數(shù)傳遞的默認(rèn)方式是Byref,因?yàn)楸举|(zhì)想法是對于相同命名的參數(shù),在系統(tǒng)中采用同一個數(shù)值。
'獲取非空行
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 '查找到數(shù)據(jù)的行Dim iMainBookStartRow As Integer '主工作簿開始行Dim iKeyRow As Integer '關(guān)鍵字行Dim strKeyRow As String '關(guān)鍵字行的關(guān)鍵字符Set SourseBook = Workbooks(strWorkbookName)Set MainBook = Workbooks(strMainWorkbookName)strSheetName = "附件8" '工作表名strKeyRow = "統(tǒng)計范圍" '關(guān)鍵字符Windows(strWorkbookName).ActivateiKeyRow = ActiveWorkbook.Sheets(strSheetName).Range("A:A").Find(strKeyRow).RowCall GetNotNullRow(iKeyRow + 2 + 1, iFoundRow) '+2因?yàn)殚_始行關(guān)鍵字為三和一合并單元格,+1下一行開始Windows(strMainWorkbookName).ActivateiMainBookStartRow = ActiveWorkbook.Sheets(strSheetName).Range("A65535").End(xlUp).Row + 1 '+1下一行開始If iMainBookStartRow - 1 = iKeyRow TheniMainBookStartRow = iMainBookStartRow + 2 '開始行關(guān)鍵字為三和一合并單元格,第一次添加數(shù)據(jù)需+2End IfSourseBook.Sheets(strSheetName).Rows(iFoundRow).Copy MainBook.Sheets(strSheetName).Range("A" & iMainBookStartRow)
End Sub '從一個工作簿拷貝到另一個工作簿
總結(jié)
以上是生活随笔為你收集整理的VBA函数传递参数方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。