Excel遍历工作表

我有一个工作簿与许多工作表,并进入一些我需要input一个值,如果前面的单元格匹配给定的string。

我的代码适用于我需要的工作表,但当它到达一些不需要的工作表(它们也有数据)时出错。

debugging器突出显示的行是For Each r In Intersect (ActiveSheet.UsedRange, Range("F:F")我是一个新手与VBA / Excel脚本。对不起,如果这是盲目明显,但我search的网站,不能find合适的答案,或者我只是不认识它。

 Sub AllOnePool() Dim myStr As String Dim myPool As String Dim sh As Worksheet Dim xlCalc As XlCalculation myStr = InputBox(Prompt:="Input the Target Serial Number: eg 93127") myPool = InputBox(Prompt:="Input the Pool to Use: ") For Each sh In ActiveWorkbook.Worksheets sh.Activate For Each r In Intersect(ActiveSheet.UsedRange, Range("F:F")) If r.Text = myStr Then r.Offset(0, 1) = myPool End If Next r Next sh End Sub 

你需要检查2个范围相交:

 Sub AllOnePool() Dim myStr As String Dim myPool As String Dim sh As Worksheet Dim cel As Range Dim xIng As Range myStr = InputBox(Prompt:="Input the Target Serial Number: ie 93127") myPool = InputBox(Prompt:="Input the Pool to Use: ") For Each sh In ActiveWorkbook.Worksheets With sh Set xIng = Intersect(.UsedRange, .Range("F:F")) If Not xIng Is Nothing Then For Each cel In xIng If cel.Text = myStr Then cel.Offset(0, 1) = myPool Next End If End With Next End Sub