【发布时间】:2015-11-15 05:10:09
【问题描述】:
我已经扫描并找到了许多与我的问题相似的答案,尽管没有一个完全符合要求,所以我将解释我所追求的并希望它有意义:
- 我已将数据从 TXT 导入到 Excel 电子表格(使用 2007),其中包含各种日期(均采用 DDMMYYYY 格式)。
- 我要做的是创建一个子例程,它会查找这种格式的任何日期,然后将日期减少 1 年。
- 日期在导入 TXT 时的范围内(在这种情况下,前 2 个日期出现在范围 A6 下)所以理想情况下我想指定该范围,因为我不一定要减少所有存在的日期在 TXT 中。
例如,这是错误的代码,我确信需要认真调整!
Cells.Replace What:="Dates", Replacement:="Dates-1", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=DDMMYYYY, _
ReplaceFormat:=False
我认为在上述代码之类的任何东西都可以工作之前,需要先进行一些定义,但如果有人可以提供帮助,我将不胜感激!
非常感谢,
罗宾。
【问题讨论】:
-
如果你知道如何定义你的范围以减少一年,你可以简单地使用 cell.Value = Left(cell.Value, 4) & Right(cell.Value, 4) - 1
-
嗨,Fabrizio,我不知道怎么做,但我想这是我可以扩展的。 - 感谢您提供正确的路径!
-
请选择这些导入的日期之一,切换到 VB 编辑器,在即时窗口中输入
? vartype(activecell)并按 Enter。如果 Excel 认为它是日期,它将显示 7。我希望您会得到 5 或 8,因为我不相信导入的值是日期;它们只是看起来像日期。 -
我不知道如果答案被修改,您是否会收到消息,所以此评论是为了确保您知道我在答案中添加了更多句子。正如我在之前的评论中所说,我相信这些日期实际上是数字或字符串。新句子解释了如果有数字或字符串我将如何处理。
标签: excel date replace find vba