1 。我在一张纸上有数据,想在另一列中过滤条件列表
2 。我也想在单独的WS中使用标准
我在下面包括了2个单独的代码
同一工作表列表数组的代码
if (isset($_POST['name'])) {
$Name = $_POST['name'];
$sql = "DELETE * FROM database WHERE Name = '$Name'";
if ($conn->query($sql) === TRUE) {
$message = "Successfully Removed " . $Name;
echo "<center><span style='color: red; font-size: 20px'><b>$message</b></span></center>";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
mysqli_close($conn); //connection close
}
列表数组 code details
Sub FilterTeams()
Dim LastRow As Long
LastRow = Range("A" & Rows.Count).End(xlUp).Row
ActiveSheet.Range("A1:H" & LastRow).AutoFilter Field:=3, Criteria1:="=*" & Range("Q1") & "*"
End Sub
它只过滤第一个值,而不是列中的所有值
(它应该过滤包含的所有值)
答案 0 :(得分:0)
问题:
您正在从array
定义Range
,这给了您2D array
,您不能轻松地将其传递到Autofilter
中。所以我们必须将其更改为1D Array
。
解决方案:将第二个代码更改为此:
Sub Filter()
Dim Criteria As Variant
Dim cri() As String
Criteria = Worksheets("Sheet1").Range("A1:A140")
ReDim Preserve cri(UBound(Criteria))
For I = LBound(Criteria) To UBound(Criteria)
cri(I) = Criteria(I, 1)
Next
Worksheets("AP").Range("$A$1:$h$100").AutoFilter Field:=1, Criteria1:=cri, Operator:=xlFilterValues
End Sub
替代:您使用的代码是固定代码。有一种动态代码也可能对您有用。选中此Answer。