Как вставить поле ввода, в котором будет указана дата, а затем добавить в строки после этой даты? - PullRequest
1 голос
/ 01 мая 2019
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

Мне нужен код для добавления двух строк после того, как он находит дату, которую пользователь вводит в поле ввода, а затем суммирует значения в столбце D. Я понимаю, что строка диапазона неверна, но я не уверен, как это сделать.вставьте строки после введенной мной даты.

1 Ответ

1 голос
/ 01 мая 2019

Пара вещей

  1. Вы не можете назвать свой суб date, так как это зарезервированное слово
  2. Не нужно .Selection
  3. Если вы используете Application.Inputbox, вы можете контролировать тип ввода ( до некоторой степени )

Предполагается, что вы работаете с Sheet1 и ваши даты должны быть сопоставлены с диапазоном ввода пользователя Column F

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...