2012-12-18 34 views
1

在Excel 2010中,我有一个日期“01-01-2012”和左右箭头。如何在Excel中从我的左/右箭头更改日期字符串?

我需要应用一个宏或其他东西,所以日期中的日子会相应减少/增加。如何才能做到这一点?

例如: “01-03-2012”,当按下向右箭头时,日期应变为“02-03-2012”,下一次为“03-03-2012”等。从[01-31] 请注意,月份和年份永远不会改变。

我已经制作了一个宏,它可以改变录制宏时输入的固定日期的日期,但它不够好。我需要它来添加/减少,而不是。

+0

是“DD-MM-YYYY”莫名其妙地保存在变量。我的意思是你有三个整数,一天,一个月和一年,或者你只是想使用一个字符串,必须转换为整数,然后回到一个字符串? –

+0

我只有一个字符串。 – radbyx

+0

这是日期在工作表中还是在用户表单中?如果它在一张纸上,我不确定如何使用箭头键可以帮助您,因为这是Excel中导航的重要组成部分,您可以完全覆盖Excel导航键的本地(并且非常常见)功能。我不会推荐这种方法。 –

回答

3

我将日期命名为“theDate”的单元格。子SubtractDay几乎是相同的,DateAdd函数的第二个参数将是-1。

Sub AddDay() 

Dim theDate As Date 
Dim newDate As Date 

theDate = Sheet1.Range("theDate") 

newDate = DateAdd("d", 1, theDate)) 

Sheet1.Range("theDate") = newDate 

End Sub 

请注意,是quick'n'dirty VBA子,因为这不是我的“强项”,但它会工作...

+0

难道你不能使用'theDate',在这一行'newDate = DateAdd(“d”,1,Sheet1.Range(“theDate”))''这样吗? 'newDate = DateAdd(“d”,1,theDate)'? – radbyx

+0

绝对!多任务...最好留给电​​脑。编辑。 –

+0

+1。非常感谢。它完美地工作并完成了这项工作。 – radbyx

1

这绝对可以通过VBA宏来完成。

在开发选项卡 - > Visual Basic中,凡在该小区中存在的纸张上双击,并实现了以下事件:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 

End Sub 

参数目标将包含被选中的单元格(检查如果其中一个箭头是所选单元格),则相应地取消/增加日期值。

相关问题