我有两张纸-“条件”和“临时”。
我想在“条件”表中应用过滤器,其中条件将从“临时”表的活动单元格中获取。我的下方宏由于某种原因而失败。
Sub FilterTest1()
ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "temporary"
ActiveSheet.[A:A].Value = Worksheets("Criteria").[A:A].Value
Cells.RemoveDuplicates Columns:=Array(1)
Range("A1").EntireRow.Delete
Dim B As Integer
B = Cells.CurrentRegion.Rows.Count
With Sheets("Temporary")
Selection.End(xlDown).Select
End With
With Sheets("Criteria")
.Range("$A:$B").AutoFilter
.Range("$A:$B").AutoFilter field:=1, Criteria1:=Worksheets("temporary").ActiveCell.Value, Operator:=xlOr
End With
End Sub
宏以
结尾运行时错误438“对象不支持此属性或方法。
正确的方法是什么?
添加更多信息:目标是逐一更改标准。现在,它应该在Temporary!A:A中选择最后一个活动单元格,但是稍后我将在Temporary!A:A中向上偏移选择,并将每个活动单元格工作表作为过滤标准。
答案 0 :(得分:0)
将Temporary!A:A中的最后一个值应用于var比依赖Select和Selection更容易。
但是,您的所有代码似乎都归结为使用Criteria!A:A中的最后一个值作为过滤器的AutoFilter。添加一个新的工作表,复制Criteria!A:A中的值,删除重复项,然后选择Temporary!A:A中最后一个填充的单元格无济于事。如果您在Temporary!A:A中对数据进行排序,则它可能会更改,但是您当前所做的只是更改Criteria!A:A中填充的最后一个值中的条件。
s = data_set[data_set['img_type'].isin(['bias'])].groupby('CCD-TEMP')['mean'].mean()
print (s)
CCD-TEMP
-15 1021.66875
-10 1023.92840
Name: mean, dtype: float64
data_set['Offset'] = data_set['CCD-TEMP'].map(s)
print (data_set)
CCD-TEMP explen img_type mean Offset
0 -10 0 bias 1023.4234 1023.92840
1 -10 0 bias 1024.4334 1023.92840
2 -15 0 bias 1022.2344 1021.66875
3 -15 0 bias 1021.1031 1021.66875
4 -10 30 dark 1025.9959 1023.92840
5 -10 30 dark 1023.3434 1023.92840
6 -10 60 dark 1020.1234 1023.92840
7 -10 60 dark 1022.4234 1023.92840
8 -15 30 dark 1025.9959 1021.66875
9 -15 30 dark 1023.3434 1021.66875
10 -15 60 dark 1020.1234 1021.66875
11 -15 60 dark 1022.4234 1021.66875