Excel 如何插入一个输入框,要求输入日期,然后在该日期后添加到行中?

Excel 如何插入一个输入框,要求输入日期,然后在该日期后添加到行中?,excel,vba,Excel,Vba,我需要代码在找到用户在输入框中输入的日期后添加两行,然后将D列中的值相加。我知道范围行不正确,但我不确定如何在输入日期后插入行。有几件事 您不能为子项命名日期,因为这是一个保留字 无需选择 如果使用Application.Inputbox,则可以控制输入类型(在某种程度上) 假设您正在处理Sheet1,并且您的日期将与用户输入span栏F 子日期查找器() 将ws设置为工作表:设置ws=ThisWorkbook.Sheets(“Sheet1”)“您很可能希望使用Range.Find方法,但这在

我需要代码在找到用户在输入框中输入的日期后添加两行,然后将D列中的值相加。我知道范围行不正确,但我不确定如何在输入日期后插入行。

有几件事

  • 您不能为子项命名
    日期
    ,因为这是一个保留字
  • 无需
    选择
  • 如果使用
    Application.Inputbox
    ,则可以控制输入类型(在某种程度上)

  • 假设您正在处理
    Sheet1
    ,并且您的日期将与用户输入span
    栏F

    子日期查找器()
    
    将ws设置为工作表:设置ws=ThisWorkbook.Sheets(“Sheet1”)“您很可能希望使用
    Range.Find
    方法,但这在很大程度上取决于格式是否正确。在电子表格上,日期是否有时间戳或小数点为0?此外,您不能命名子
    日期
    ,因为这是保留字它们没有时间戳,当我输入range.find时,它显示为错误“参数非可选”处理解决方案-保持稳定如何向数据后的第一个空行I添加求和函数,并将其上方的所有内容添加到单元格D4?这是一个完全不同的问题。给它一些时间来尝试弄清楚——如果你做不到,新的问题会得到新的帖子。如果这回答了您在第一篇文章中的问题,您应该接受以下解决方案:)这将找到包含我输入的日期的第一个单元格。如何将其修改为自下而上而不是自上而下?您可以修改
    范围中的选项。Find
    方法。链接将确切地告诉您如何将其发送到哪里如果找不到日期,它将允许用户重试?
    Sub date
        Dim DTE as Date
        MBox = InputBox(“Enter Friday date”)
        If IsDate(MBox) Then
            DTE = CDate(MBox)
            Range(“F” & Rows.Count).End(xlUp).Offset(1).Select
            Selection.Insert Shift:=xlDown
            Selection.Insert Shift:=xlDown
         Else 
             MsgBox(“This isn’t a date. Try again.”)
        End if
    End sub
    
    Sub Date_Finder()
    
    Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1") '<-- Update
    Dim xInput As Date, Found As Range
    
    xInput = Application.InputBox("Enter Date [mm/dd/yyyy]", Type:=1)
    
        If IsDate(xInput) Then
            Set Found = ws.Range("F:F").Find(xInput)
    
            If Found Is Nothing Then
                MsgBox "Input not found in range"
            Else
                Found.Offset(1).EntireRow.Insert (xlShiftDown)
                Found.Offset(1).EntireRow.Insert (xlShiftDown)                
            End If
        Else
            MsgBox "Invalid Entry. Ending sub" & vbNewLine & "Entry: " & xInput, vbCritical
        End If
    
    End Sub