【发布时间】:2018-11-09 05:42:38
【问题描述】:
我有一个我在 excel 中编写的 vba 脚本,它运行得非常愉快,直到几天前它变得喜怒无常。我有四个具有命名范围的工作表,我正在复制名称范围,并粘贴到具有今天日期的列中。此宏在第二次日期查找 (Sheet2) 和 (Sheet4) 时失败
如果我尝试再次运行它,它似乎在所有日期查找中都失败了。 这段代码甚至简要了解了要做什么,并且没有错误地执行,然后在重新运行时返回错误。
我明白了
运行时错误 91:对象变量或未设置块
让我感到困惑的是,这在过去一年到大约一周前都运行良好。任何帮助将不胜感激。
Sub Test()
Range("Sheet1").Copy
Worksheets("Sheet1").Cells.Find(What:=Date, After:=Range("A1"), LookIn:=xlFormulas, SearchOrder:=xlByRows, SearchDirection:=xlNext).Offset(4, 0).PasteSpecial Paste:=xlPasteValues
Sheets("Sheet1").Select
Range("C2").Select
Range("Sheet2").Copy
Worksheets("Sheet2").Cells.Find(What:=Date, After:=Range("A1"), LookIn:=xlFormulas, SearchOrder:=xlByRows, SearchDirection:=xlNext).Offset(4, 0).PasteSpecial Paste:=xlPasteValues
Sheets("Sheet2").Select
Range("C2").Select
Range("Sheet3").Copy
Worksheets("Sheet3").Cells.Find(What:=Date, After:=Range("A1"), LookIn:=xlFormulas, SearchOrder:=xlByRows, SearchDirection:=xlNext).Offset(4, 0).PasteSpecial Paste:=xlPasteValues
Sheets("Sheet3").Select
Range("C2").Select
Range("Sheet4").Copy
Worksheets("Sheet4").Cells.Find(What:=Date, After:=Range("A1"), LookIn:=xlFormulas, SearchOrder:=xlByRows, SearchDirection:=xlNext).Offset(4, 0).PasteSpecial Paste:=xlPasteValues
Sheets("Sheet4").Select
Range("C2").Select
End Sub
【问题讨论】:
-
似乎 Find() 没有匹配,因此该行的其余部分失败。
-
@TimWilliams 是的 - 我尝试创建一个新的 excel 工作簿,创建一个新工作表并在工作表之间使用相同的日期复制工作表(认为工作簿可能已损坏),但仍然无法找到日期对于 sheet2。如果我将单词日期更改为“2018 年 9 月 11 日”,它会起作用。
-
Sheet2 出现问题 - 日期真的是日期还是文本?