使用VBA Excel在两个不同的单元格中添加/减lessdate更改

我怎样才能创build一个macros,将在一个单元格中添加一天,同时在另一个单元格中减去一天? 这是我到目前为止。

Sub ChangeDates() Dim cell As Range For Each cell In Range("B:B") cell.Value = cell.Value + 1 Next cell For Each cell In Range("C:C") cell.Value = cell.Value - 1 End Sub 

抵消救援!

 Sub ChangeDates() Dim cell As Range For Each cell In Range("B:B") cell.Value = cell.Value + 1 cell.offset(0,1).value = cell.offset(0,1).value - 1 Next cell End Sub 

另一件你可能会考虑的是要么使用usedrange来遍历所有的B列,要么进行检查,以确保单元格不是空白的…只要更快,更好的编码,并阻止你有不良的价值细胞原本是空白的…

 Sub ChangeDates() Dim cell As Range For Each cell In Intersect(Range("B:B"), ActiveSheet.UsedRange) cell.Value = cell.Value + 1 cell.Offset(0, 1).Value = cell.Offset(0, 1).Value - 1 Next cell End Sub 

我知道你已经接受了一个答案,但我想提供这种方法,比循环遍历所有这些单元更快,更高效。

如果您的date在A列,则B列将保留date +1而C列将保留date -1

 Option Explicit Sub ChangeDates() Dim myRange As range Dim mySheet As Worksheet Set mySheet = Sheets("Sheet7") 'change to your sheet With mySheet Set myRange = .range("A1:A" & .range("A" & .Rows.Count).End(xlUp).Row) myRange.Offset(, 1).FormulaR1C1 = "=RC[-1]+1" myRange.Offset(, 2).FormulaR1C1 = "=RC[-2]-1" End With End Sub