2016-01-22 189 views
0

我试图用.Find方法搜索一系列单元格,我似乎无法使其工作。我在单元格A1和A2中有上限和下限数字,只是想要搜索A列。有没有另外一种方法可以设置.Range(),以便我可以搜索这些特定的单元格?VBA搜索范围

lowNum = Worksheets("Sheet4").Cells(1, 1) 
HighNumb = Worksheets("Sheet4").Cells(1, 2) 

Row = 2 
While Not IsEmpty(Worksheets("Sheet4").Range("A" & Row)) 
cn = 1 
While Not IsEmpty(Worksheets("Sheet4").Cells(Row, cn)) 
    Set c1 = Worksheets("Sheet2").Range(Cells(lowNum, "A"), Cells(HighNumb,"A")).Find(
     What:=Worksheets("Sheet4").Cells(Row, cn), _ 
     LookIn:=xlValues) 
    If Not c1 Is Nothing Then 
     Worksheets("Sheet4").Cells(Row, cn).Delete shift:=xlToLeft 
     cn = cn - 1 
    End If 
    cn = cn + 1 
Wend 
Row = Row + 1 
Wend 




End Sub 
+0

一件事是这样的'工作表(“Sheet2的”)范围(单元格(lowNum“。 (“Sheet2”),单元格(LowNum,“A”),工作表(“Sheet2”)。单元格(HighNumb,“A”)'或者,我喜欢为了简洁而写它'With Worksheets(“Sheet2”).Range(.Cells(lowNum,“A”),. Cells(HighNumb,“A “))''''''''''''''''''''当你使用单元格范围内的单元格时,你需要限定你的图表引用 – user1274820

+0

这个意思不太清楚你的意思是:我有上限和下限在单元格A1和A2中绑定数字,只是想要搜索A列。有没有另外一种方法可以设置.Range(),以便我可以搜索这些特定的单元格?您是否在Sheet2单元格A1和A2中的数字之间寻找整数? – user1274820

+0

我是要搜索两个数字之间的单元格。例如,我想从A200:A450中搜索我在Sheet4中保存的值。 – levif1

回答

0

我纠正你的代码了一下,告诉我,如果它的工作:

你可能要修复
lowNum = Worksheets("Sheet4").Cells(1, 1).Value 
HighNumb = Worksheets("Sheet4").Cells(1, 2).Value 

LastRow = Worksheets("Sheet4").Cells(Worksheets("Sheet4".Rows.Count, "a").End(xlUp).Row 

For Row = 2 To LastRow 
    While Not IsEmpty(Worksheets("Sheet4").Range("A" & Row)) 
     cn = 1 
     While Not IsEmpty(Worksheets("Sheet4").Cells(Row, cn)) 
      Set c1 = Worksheets("Sheet2").Range(Cells(lowNum, "A"), Cells(HighNumb,"A")).Find(What:=Worksheets("Sheet4").Cells(Row, cn).Value, LookIn:=xlValues) 
      If Not c1 Is Nothing Then 
       Worksheets("Sheet4").Cells(Row, cn).Delete shift:=xlToLeft 
       cn = cn - 1 
      End If 
     cn = cn + 1 
     Wend 
    Row = Row + 1 
    Wend 

End Sub 
+0

PS:lowNum,HighNum和LastRow需要声明为整数或长整数 – Kathara

+0

谢谢你的工作。我有他们宣布我只是没有复制一切抱歉。 – levif1

+0

没关系,只是想确保它们为此代码正确声明。如果它有效,你会将它标记为答案吗? :) – Kathara