【发布时间】:2015-03-03 05:32:43
【问题描述】:
我意识到在 Excel 中处理 VBA TypeMismatch 错误已经有很多很好的响应,但它们似乎都非常具体,而且我承认 VBA n00b 太多以至于无法遵循它们。
所以,我想知道您是否可以帮助我解决这个特定的困境: 我制作了一个工作簿,如果 C 列中的值小于今天的日期,我希望行自动隐藏。 *我将以下宏分配给 ActiveX 命令按钮: em>*
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
直到最近它工作正常,但现在有时会导致 'Type MisMatch',我不知道为什么。这似乎只是几个工作表上的问题,并且它们都被分配了相同的宏。
我还实现了一个 ActiveX 命令按钮来“显示所有行”:
Sub ShowAll_Click()
ActiveSheet.Cells.EntireRow.Hidden = False
End Sub
这个没有任何问题。
另外,我不确定这是否相关,但我在文档中创建了许多内部参考。例如,在 B5 中输入“=A5”,这样如果我们的多件设备租赁发生变化,我只需输入一次信息。这被证明是非常令人沮丧的,因为每次我遇到“类型不匹配”错误时,它都会将某些单元格恢复为“=REF”。
如果我采取了错误的方法或者您有任何建议,请告诉我!
谢谢, 亚历山德拉。
【问题讨论】:
-
如果 Tarik 的回答很有魅力,请接受。
标签: vba excel show-hide type-mismatch