2014-01-03 2 views
0

У меня есть лист с днями года в строке 2, я хотел бы найти этот диапазон и найти дату через входную строку, затем прокрутить эту колонку с выбранной датой, чтобы найти все ячейки с определенной буквой в ней (например, «E»), затем возьмите соответствующие имена в столбце A и скопируйте их на другой лист, создав список имен на новом листе.Выберите дату, скопируйте столбец, затем переместите значение на другой лист.

У меня есть код для выбора даты через поле ввода, и это хорошо работает, но у меня возникают трудности с остатком.

Sub Worksheet_Find() 

    Dim strdate As String 
    Dim rCell As Range 
    Dim lReply As Long 

    strdate = Application.InputBox(Prompt:="Enter a Date to Locate on This Worksheet", _ 
      Title:="DATE FIND", Default:=Format(Date, "Short Date"), Type:=1) 

    If strdate = "False" Then Exit Sub 
    strdate = Format(strdate, "Short Date") 

    On Error Resume Next 

    Set rCell = Cells.Find(What:=CDate(strdate), After:=Range("A1"), LookIn:=xlFormulas _ 
     , LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) 

    rCell.Select 

    On Error GoTo 0 

    If rCell Is Nothing Then 
     lReply = MsgBox("Date cannot be found. Try Again", vbYesNo) 
     If lReply = vbYes Then Run "FindDate": 
    End If 

End Sub 

Любая помощь была бы принята с благодарностью.

wingnut74

+0

Это поможет вам получить ответ, если вы перефразируете его как вопрос в конце. Как «как я могу получить остаток?» – Jonas

+0

'У меня трудности? – pnuts

ответ

0

Я ожидаю, что вы делаете простой Do While Loop:

Do While Len(Sheets("SheetName").Cells(i, rCell.collumn).value)>0 
    'do your if condition here... (if Sheets("SheetName").Cells(i, rCell.collumn).value Like "*E*" or use Instr() function 
    i=i+1 
Loop 

что-то подобное ... если вы не знаете, как использовать циклы, посмотрите, что в некоторых учебных пособий

Смежные вопросы