VBA代码,用于将天数从一列添加到另一列
Excel中有以下列:文档日期所有单元格都有值&初始处置日期列中有空格 每个文档日期单元格对应一个初始处置日期单元格 对于任何空白的初始处置日期单元格,我希望将其设置为从相应文档日期算起的7天。严格空白单元格 例如:文件日期=2018年1月10日。预期初始处置日期=2018年8月10日 是否有执行此类操作的代码?顺便说一下,我有大约55000行和51列VBA代码,用于将天数从一列添加到另一列,vba,excel,Vba,Excel,Excel中有以下列:文档日期所有单元格都有值&初始处置日期列中有空格 每个文档日期单元格对应一个初始处置日期单元格 对于任何空白的初始处置日期单元格,我希望将其设置为从相应文档日期算起的7天。严格空白单元格 例如:文件日期=2018年1月10日。预期初始处置日期=2018年8月10日 是否有执行此类操作的代码?顺便说一下,我有大约55000行和51列 多谢各位!非常感谢您的任何建议或想法 如果您的文档日期在A列,而您的初始处置日期在B列,则以下内容将达到您的预期结果: Sub foo() Di
多谢各位!非常感谢您的任何建议或想法 如果您的文档日期在A列,而您的初始处置日期在B列,则以下内容将达到您的预期结果:
Sub foo()
Dim ws As Worksheet: Set ws = Sheets("Sheet1")
'declare and set the worksheet you are working with, amend as required
Lastrow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
'get the last row with data on Column A
For i = 2 To Lastrow
'loop from row 2 to the last row with data
If ws.Cells(i, "B").Value = "" Then
'if there is no value in Column B then
ws.Cells(i, "B").Value = ws.Cells(i, "A").Value + 7
'add seven days to the date from Column A
End If
Next i
End Sub
在这种情况下,在一个范围内循环要快一点。我假设您的数据在表1中,您的文件日期在A列,您的初始证词在B列 最后,您需要确定7天是否包括周末。我给你们留下了一个解决方案。您需要删除循环中间的一个操作语句
Option Explicit
Sub BetterCallSaul()
Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")
Dim LRow As Long, iRange As Range, iCell As Range
LRow = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
Set iRange = ws.Range("B2:B" & LRow)
Application.ScreenUpdating = False
For Each iCell In iRange
If iCell = "" Then
iCell = iCell.Offset(, -1) + 7 'Includes Weekends
iCell = WorksheetFunction.WorkDay(iCell.Offset(, -1), 7) 'Excludes Weekends
End If
Next iCell
Application.ScreenUpdating = True
End Sub
所有空格上的公式将避免在工作表列中循环出现延迟
Sub ddPlus7()
Dim dd As Long, didd As Long
With Worksheets("sheet1")
'no error control on the next two lines so those header labels better be there
dd = Application.Match("Document Date", .Rows(1), 0)
didd = Application.Match("Desired Initial Disposition Date", .Rows(1), 0)
On Error Resume Next
With Intersect(.Columns(dd).SpecialCells(xlCellTypeConstants, xlNumbers).EntireRow, _
.Columns(didd).SpecialCells(xlCellTypeBlanks).EntireRow, _
.Columns(didd))
.FormulaR1C1 = "=rc[" & dd - didd & "]+7"
End With
On Error GoTo 0
End With
End Sub
欢迎来到SO请阅读此处以创建一个帮助人们回答您的问题,并回顾以下内容。祝你好运。@garfbradaz,如果你在评论中键入速记[mcve],你会得到。[请求],[帮助]和其他一些人也是如此。e、 吉普:哇,我不知道-谢谢!在初始处置日期列中,put=[文档日期]+7?我还建议更改子名称;