Definindo um intervalo em uma coluna filtrada no Excel

1

Eu estou tentando fazer uma macro que eu possa usar para selecionar automaticamente todos os valores dentro do intervalo filtrado da coluna. Idealmente, estou tentando fazer com que isso funcione com 10 condições de filtro (1-10), mas o número de valores retornados para essas condições pode variar.

Anexei um conjunto muito pequeno de dados de amostra de como as colunas serão. Eu estou filtrando pela segunda coluna "LinSpatialBin". Eu estou tentando obter a média dos valores na última coluna (evento LIN / comprimento de faixa) para cada condição filtrada (por exemplo, se houver dois valores retornados para spatialbin 1, quero sua média na primeira célula da coluna à direita) . Eu pensei que eu deveria usar referências relativas, pois isso precisa trabalhar em vários intervalos de coluna em diferentes planilhas.

Por favor, deixe-me saber se posso fornecer mais detalhes ou esclarecer qualquer coisa. Abaixo está o script e abaixo estão os dados da amostra.

Script

Sub test() ' ' test Macro ' test ' ' Keyboard Shortcut: Ctrl+q ' ActiveCell.Columns("A:E").EntireColumn.Select Selection.AutoFilter ActiveSheet.Range("$A$1:$E$1142").AutoFilter Field:=2, Criteria1:="1" ActiveCell.Offset(2, 5).Range("A1").Select ActiveCell.FormulaR1C1 = "=AVERAGE(RC[-1]:R[27]C[-1])" ActiveCell.Offset(1, 0).Range("A1").Select ActiveSheet.Range("$A$1:$E$1142").AutoFilter Field:=2, Criteria1:="2" ActiveCell.Offset(27, 0).Range("A1").Select ActiveCell.FormulaR1C1 = "=AVERAGE(RC[-1]:R[27]C[-1])" ActiveCell.Offset(1, 0).Range("A1").Select ActiveSheet.Range("$A$1:$E$1142").AutoFilter Field:=2, Criteria1:="3" ActiveCell.Offset(27, 0).Range("A1").Select ActiveCell.FormulaR1C1 = "=AVERAGE(RC[-1]:R[27]C[-1])" ActiveCell.Offset(1, 0).Range("A1").Select ActiveSheet.Range("$A$1:$E$1142").AutoFilter Field:=2, Criteria1:="4" ActiveCell.Offset(27, 0).Range("A1").Select ActiveCell.FormulaR1C1 = "=AVERAGE(RC[-1]:R[27]C[-1])" ActiveCell.Offset(1, 0).Range("A1").Select ActiveSheet.Range("$A$1:$E$1142").AutoFilter Field:=2, Criteria1:="5" ActiveCell.Offset(27, 0).Range("A1").Select ActiveCell.FormulaR1C1 = "=AVERAGE(RC[-1]:R[27]C[-1])" ActiveCell.Offset(1, 0).Range("A1").Select ActiveSheet.Range("$A$1:$E$1142").AutoFilter Field:=2, Criteria1:="6" ActiveCell.Offset(27, 0).Range("A1").Select ActiveCell.FormulaR1C1 = "=AVERAGE(RC[-1]:R[27]C[-1])" ActiveCell.Offset(1, 0).Range("A1").Select ActiveSheet.Range("$A$1:$E$1142").AutoFilter Field:=2, Criteria1:="7" ActiveCell.Offset(27, 0).Range("A1").Select ActiveCell.FormulaR1C1 = "=AVERAGE(RC[-1]:R[27]C[-1])" ActiveCell.Offset(1, 0).Range("A1").Select ActiveSheet.Range("$A$1:$E$1142").AutoFilter Field:=2, Criteria1:="8" ActiveCell.Offset(27, 0).Range("A1").Select ActiveCell.FormulaR1C1 = "=AVERAGE(RC[-1]:R[27]C[-1])" ActiveCell.Offset(1, 0).Range("A1").Select ActiveSheet.Range("$A$1:$E$1142").AutoFilter Field:=2, Criteria1:="9" ActiveCell.Offset(27, 0).Range("A1").Select ActiveCell.FormulaR1C1 = "=AVERAGE(RC[-1]:R[27]C[-1])" ActiveCell.Offset(1, 0).Range("A1").Select ActiveSheet.Range("$A$1:$E$1142").AutoFilter Field:=2, Criteria1:="10" ActiveCell.Offset(27, 0).Range("A1").Select ActiveCell.FormulaR1C1 = "=AVERAGE(RC[-1]:R[27]C[-1])" ActiveCell.Offset(1, 0).Range("A1").Select Selection.AutoFilter ActiveWindow.SmallScroll Down:=-24 End Sub

Dados da amostra

right_8.1.2017_CTRL_LIN_MTX_2_1_1200FR
LINTrackLINSpatiLIN Beha LIN TraLIN event/tracklength
       1       1       0       0
       2       1       0       0
       3       1       0       0
       4       1       0       0
       5       1       0       0
       6       1       0       0
       7       1       0       0
       8       1       0       0
       9       1       0       0
       1       2       0       0
       2       2       0       0
       3       2       0       0
       4       2       0       0
       5       2       0       5    0.00
       6       2       0       0
       7       2       0       0
       8       2       0       1    0.00
       9       2       0       0
       1       3       0       0
       2       3       0       0
       3       3       0       0
       4       3       0       0
       5       3      22      92    0.24
       6       3       0       0
       7       3       0       6    0.00
       8       3       5      20    0.25
       9       3       0       0
       1       4       0       0
       2       4       0       4    0.00
       3       4       0       0
       4       4       0       0
       5       4       9      58    0.16
       6       4       0       0
       7       4       2      17    0.12
       8       4       0       0
       9       4       1       1    1.00
       1       5       0       0
       2       5       7      53    0.13
       3       5       1       7    0.14
       4       5       0       0
       5       5       0       0
       6       5       1       9    0.11
       7       5       1       5    0.20
       8       5       0       0
       9       5       3      11    0.27
       1       6       0       0
       2       6       1      23    0.04
       3       6       4      16    0.25
       4       6       0       0
       5       6       0       0
       6       6       2      15    0.13
       7       6       0       0
       8       6       0       0
       9       6       0       0
       1       7       3       4    0.75
       2       7       6      29    0.21
       3       7       0       0
       4       7       5      20    0.25
       5       7       0       0
       6       7       0       0
       7       7       0       0
       8       7       0       0
       9       7       0       0
       1       8       2      10    0.20
       2       8       1       5    0.20
       3       8       0       0
       4       8      14      66    0.21
       5       8       0       0
       6       8       0       0
       7       8       0       0
       8       8       0       0
       9       8       0       0
       1       9       1       4    0.25
       2       9       1       7    0.14
       3       9       0       0
       4       9      10      47    0.21
       5       9       0       0
       6       9       0       0
       7       9       0       0
       8       9       0       0
       9       9       0       0
       1      10       1       3    0.33
       2      10       3      10    0.30
       3      10       0       0
       4      10      15      77    0.19
       5      10       0       0
       6      10       0       0
       7      10       0       0
       8      10       0       0
       9      10       0       0

    
por drtran 07.08.2018 / 03:55

1 resposta

0

Para selecionar as células visíveis ...

ActiveSheet.UsedRange.SpecialCells(xlCellTypeVisible).Select

Mas isso levanta a questão: o que você realmente quer fazer com as células?

    
por 25.08.2018 / 08:32