Running the subroutine RunMe works before August 2019 Windows update.
Running the subroutine RunMe fails after August 2019 Windows update. It reports the following error message: "Invalid procedure call or argument (Error 5)"
Public Sub RunMe()
Dim wksTestArray() As Worksheet
MsgBox SendArrayToFunction(wksTestArray())
End Sub
Public Function SendArrayToFunction(ByVal vntArray As Variant) As Boolean
SendArrayToFunction = True
End Function
Please note: The error only occurs for an unallocated array.
It can be useful for a function to accept a Variant, which can be either an Array of values, or an Array of objects, for example, IsArrayAllocated is an example function where this would be required.
Is there a fix?
The update affects VB6, VBA (including all versions of Office) as well as VBScript!
Microsoft is currently looking into the issue: https://support.microsoft.com/en-us/help/4512488/windows-8-1-update-kb4512488 (look at the last row under the section entitled "Known issues in this update")
Update:
Microsoft just released a patch for this issue: https://support.microsoft.com/en-us/help/4517298/windows-8-1-update-kb4517298
To fix, change the ByVal to ByRef in the function:
Public Sub RunMe()
Dim wksTestArray() As Worksheet
MsgBox SendArrayToFunction(wksTestArray())
End Sub
Public Function SendArrayToFunction(ByRef vntArray As Variant) As Boolean
SendArrayToFunction = True
End Function
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With