我想通过excel工作簿关闭一个子程序,而不必再次打开和关闭它。将一个对象传递给一个函数或子程序
我想这
Dim ExcelApp As New Excel.Application
Dim ws As Object
Public Function cert()
Set ws = ExcelApp.Workbooks.Open(FileDir).Sheets(1)
If CheckForMutipleUIC(ws) = True Then <---- this is where I call the Function
....
该函数打开这个
Public Function CheckForMutipleUIC(ByVal ws As Excel.Workbook) As Boolean
' Dim ExcelApp As New Excel.Application
' DataFleet = CurrentProject.Path & "\Extract\Fleet.xls"
' Set ws1 = ExcelApp.Workbooks.Open(DataFleet).Sheets(1)
UICCheck = ws.Range("GD2").Value
For Each Cell In ws.Range("GD2:GD10000").cells
If Cell.Text <> "" Then
If Cell.Value <> UICCheck Then
Err.Raise 513, "VICILauncher-DataValidation-CheckForMultipleUIC", "Multiple UICS Found in extract. Please Make sure the correct UIC is being Extracted"
End If
End If
Next
CheckForMutipleUIC = True
Exit Function
但我想我没有通过Excel对象正确。应用程序对象如何通过关闭和重新打开来传递给子对象。
你说你想传递一个'工作簿'。 **但是**然后你在这里将它设置为'Worksheet':'Set ws = ExcelApp.Workbooks.Open(FileDir).Sheets(1)'。然后在你的函数里面有'(ByVal ws As Excel.Workbook)',**,但是在再次出现'UICCheck = ws.Range(“GD2”)。Value',它是一个'Worksheet'对象。那么是哪一个呢 ? 'ws'是'Worksheet'还是'Workbook'? –
你是对的我想通过excel表功能 – Quint
我试了一下,它运行出错,但一步一步通过'对于每个单元'的单元格来空白 – Quint