我意识到已经有很多很好的响应来处理 Excel 中的 VBA TypeMismatch 错误,但它们看起来都非常具体,而且我承认我对 VBA n00b 太了解了,无法遵循它们。
所以,我想知道您是否可以帮助我解决这个特定的困境:我制作了一个工作簿,如果 C 列中的值小于今天的日期,我希望行自动隐藏自己。*我将以下宏分配给 ActiveX 命令按钮: *
Sub Hide_PastOrders()
Dim MyRange As Range, C As Range
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Set MyRange = Range("d1:d1000")
MyRange.EntireRow.Hidden = False
For Each C In MyRange
If IsDate(C.Value) And C.Value < Date Then
C.EntireRow.Hidden = True
End If
Next
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
直到最近它工作正常,但现在有时会导致“类型不匹配”,我不知道为什么。这似乎只是几个工作表上的一个问题,并且它们都被分配了相同的宏。
我还实现了一个 ActiveX 命令按钮来“显示所有行”:
Sub ShowAll_Click()
ActiveSheet.Cells.EntireRow.Hidden = False
End Sub
这个没有任何问题。
另外,我不确定这是否相关,但我在文档中创建了许多内部参考。例如,在 B5 中键入“=A5”,这样如果我们的多件设备租金发生变化,我只需键入一次信息。这被证明是非常令人沮丧的,因为每次我遇到“TypeMismatch”错误时,它都会将某些单元格恢复为“=REF”。
如果我采取了错误的方法或者您有任何建议,请告诉我!
谢谢,亚历山德拉。