0

我将如何创建一个宏来提示当前日期并提前 1 天更改下一个单元格?我有一个到目前为止的样本。让我知道我是否关闭。

Sub Change_dates()
    Dim dtDate As Date
    dtDate = InputBox("Date", , Date)
    For Each cell In Intersect(Range("B " & dblRow).Value = dtDate, ActiveSheet.UsedRange)
        cell.Offset(0, 1).Select = cell.Offset(0, 1).Select + 1
    Next cell
End Sub
4

2 回答 2

1

此代码将提示当前日期,写入活动单元格,然后将日期 + 1 写入下一列的单元格。

Sub Change_dates()
Dim dtDate As Date
dtDate = InputBox("Date", , Date)

ActiveCell.Value = dtDate
ActiveCell.Offset(0, 1).Value = dtDate + 1

End Sub

这将从提示中获取日期,将其写入范围内选定的行中,然后将日期 + 1 放在所选范围右侧一列的行中。

Sub Change_dates_range()
Dim dtDate As Date
dtDate = InputBox("Date", , Date)

Set SelRange = Selection

For Each b In SelRange.Rows
    b.Value = dtDate
    b.Offset(0, 1).Value = dtDate + 1
Next

End Sub

如果您希望范围内的每一行都是前一行的 + 1 天,那么我将在循环结束时在 Next 语句之前增加 dtDate。

于 2012-10-19T14:54:40.227 回答
0

这应该完全符合您的要求:

Sub Change_dates()
Dim dtDate As Date
Dim rng As Range
Dim FirstRow As Integer
   dtDate = InputBox("Date", , Date)
   Set rng = ActiveSheet.Columns("B:B").Find(What:=dtDate, LookIn:=xlFormulas, SearchOrder:=xlByRows, SearchDirection:=xlNext)
   FirstRow = rng.Row
Do
   rng.Offset(0, 1).Value = rng.Offset(0, 1).Value + 1
   Set rng = ActiveSheet.Columns("B:B").FindNext(After:=rng)
Loop Until rng.Row = FirstRow

End Sub
于 2012-10-19T15:14:10.970 回答