以下代码在第一张纸上删除太多,然后没有循环到第二张纸? .FindNext语句中出现错误。
Sub FindAndExecute3()
Dim Loc As Range
Dim sh As Worksheet
For Each sh In ThisWorkbook.Worksheets
With sh.UsedRange
Set Loc = .Cells.Find(What:="AUTO.WHSE.")
If Not Loc Is Nothing Then
Do Until Loc Is Nothing
Rows(ActiveCell.Row & ":" & (ActiveCell.Row + 2)).Delete
Set Loc = .FindNext(Loc)
Loop
End If
End With
Set Loc = Nothing
Next
End Sub
答案 0 :(得分:0)
您必须完全符合if (!function_exists('query_db_select') ) :
function query_db_select($query, $where){
$query_params = array(
':var' => $where
);
try {
$stmt = $db->prepare($query);
$stmt->execute($query_params);
}
catch (PDOException $ex){
}
$myArray = $stmt->fetchAll();
return array("count" => count($myArray), "elements" => $myArray);
}
endif;
的资格。
此问题一次又一次出现(例如this)。
这是什么意思?请勿使用Range
,Cells
,Range
或Rows
而不指定Columns
他们属于,除非你特别想要这样做(即使在这种情况下,明确使用Worksheet
提高了可读性并减少了出错的可能性,类似于使用ActiveSheet
)。
例如,替换
Option Explicit
与
Rows(ActiveCell.Row & ":" & (ActiveCell.Row + 2)).Delete
我假设要删除的sh.Rows(sh.<something>.Row & ":" & (sh.<something>.Row + 2)).Delete
跨度Range
取自Row
相关内容的数字。
注1 :在这种情况下,即使没有限定sh
s,代码也会继续执行,错误可能会被忽视,因为它会产生有效的结果。在其他情况下,没有完全限定Range
的代码会抛出错误(例如Range
,sheet1.Range(Cells(...
不是sheet1
)。**
注意2 :只有当ActiveSheet
所使用的ActiveCell
为Worksheet
[MSDN]时,您才能使用ActiveSheet
。