【发布时间】:2019-04-27 02:11:08
【问题描述】:
编辑:我几乎确信这是 Excel for Mac 的一个错误的遗留物,记录在 here
该错误消息最初是在单击工作表的 VBA 编辑器代码窗口中的下拉菜单时显示的,如上面的链接中所述。从那时起,不仅开始发生以下错误,而且在特定工作表上编辑范围的其他尝试也产生了相同的错误消息。甚至像
这样简单的东西Worksheets("Sheet2").Range("A1").Value = 3.14159
我做了什么来解决这个问题:
- 创建了一个新工作表
- 将 Sheet2 的内容复制到新工作表中
- 将 VBA sn-p 复制到 ThisWorkbook 窗口而不是新工作表的窗口。
- 它成功了 - 没有 458 错误消息
感谢 QHarr 的反馈和修复;我也将您的建议纳入了代码中。
下面的原始问题
我在 Mac 上,正在编写 Workbook Sheet Change 事件。它正确触发,但在“Dim reservationRange As Range”行出错。使用 Excel 16.19 以下是错误:
运行时错误“458”:
变量使用 Visual Basic 不支持的自动化类型
代码如下:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
With ThisWorkbook.Worksheets("Sheet2")
Dim reservationRange As Range
reservationRange = .Range("I16:N500")
' If change was made in Reservations section
If Not Intersect(Target, reservationRange) Is Nothing Then
Dim reservationRow As Integer
reservationRow = Target.Row
' If weekly budget is less than 0
If .Range("O" & reservationRow).Value < 0 Then
' Output Message and undo
MsgBox ("Error")
Application.Undo
End If
End If
End With
End Sub
【问题讨论】: