首页 > 解决方案 > 在 2019 年 8 月 Windows 更新之前将对象数组发送到变体有效,但更新后失败

问题描述

在 2019 年 8 月 Windows 更新之前运行子例程 RunMe。

2019 年 8 月 Windows 更新后运行子例程 RunMe 失败。它报告以下错误消息:“无效的过程调用或参数(错误 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

请注意:该错误仅发生在未分配的数组中。

函数接受 Variant 可能很有用,它可以是值数组或对象数组,例如,IsArrayAllocated 是一个需要这样做的示例函数。

有解决办法吗?

标签: excelvba

解决方案


此更新影响 VB6、VBA(包括所有版本的 Office)以及 VBScript!

Microsoft 目前正在调查该问题: https: //support.microsoft.com/en-us/help/4512488/windows-8-1-update-kb4512488(查看标题为“此中的已知问题”部分下的最后一行更新”)

更新:

微软刚刚针对这个问题发布了补丁:https: //support.microsoft.com/en-us/help/4517298/windows-8-1-update-kb4517298


推荐阅读