2017-09-15 80 views
1

下面的代码是去一张桌子,并过滤哪个动物进来。动物的选择是狗,猫和仓鼠。然后它会抽取日期和时间并将其粘贴到另一张纸上。如何选择过滤表的第一个和最后一个单元格?

我的问题与做狗的随机数可以显示任何一天,让我们说37显示出来。

我可以得到的数据,以正确拉,但后来当我去把它开始于行38猫和我的代码保持从排拉动2.

我怎样才能让我的代码开始在无论选择哪种动物并选择过滤表的第一个和最后一个单元格?

Sub VetDate() 
str = "" 
str2 = "" 
With Sheet1 
    .AutoFilterMode = False 
    With .Range("A1:N1") 
    .AutoFilter 
    .AutoFilter Field:=9, Criteria1:="dog" 
    str = .Range("A2").Value 'How to fix this part 
    str2 = .Range("A1").End(xlDown).Value 'How to fix this part 
    End With 
    End With 
    With Sheet2 
    .Range("D36:D37").ClearContents 
    .Range("D36").Value = Format(str, "mmm-dd-yy hh:mm am/pm") 
    .Range("D37").Value = Format(str2, "mmm-dd-yy hh:mm am/pm") 
    .Range("D36:D37").HorizontalAlignment = xlCenter 
End With 
End Sub 

回答

2

请试试这个:

Sub VetDate() 

Dim StrRow As Long 
Dim Str2Row As Long 

str = "" 
str2 = "" 
With Sheet1 
    .AutoFilterMode = False 
    With .Range("A1:N1") 
    .AutoFilter 
    .AutoFilter Field:=9, Criteria1:="dog" 
    StrRow = Activesheet.AutoFilter.Range.Offset(1).SpecialCells(xlCellTypeVisible).Cells(1, 2).Row 
    Str2Row = Range("A" & Rows.Count).End(xlUp).Row 
    str = .Range("A" & Str2Row).Value 'How to fix this part 
    str2 = .Range("A" & StrRow).Value 'How to fix this part 
    End With 
    End With 
    With Sheet2 
    .Range("D36:D37").ClearContents 
    .Range("D36").Value = Format(str, "mmm-dd-yy hh:mm am/pm") 
    .Range("D37").Value = Format(str2, "mmm-dd-yy hh:mm am/pm") 
    .Range("D36:D37").HorizontalAlignment = xlCenter 
End With 
End Sub 

希望这有助于

+1

这确实有很大的帮助。我不得不做出一些改变。 'StrRow =表( “工作表Sheet”)。AutoFilter.Range.Offset(1).SpecialCells(xlCellTypeVisible).Cells(1,2).Row'和'STR2 = .Range( “A1”)。完(xlDown)。 Value' – DaBeau96

相关问题