如何将公式链接到已过滤的列?

目前我正试图用vba在单元格中input这个公式。

Selection.AutoFilter Field:=10, Criteria1:="*FG*" Set Rng = Worksheets("Sheet1").Range("J2:J" & lastRow) Set TopVisibleCell = Rng.Offset(1).SpecialCells(xlCellTypeVisible).Cells(1) TopVisibleCell.Formula = _ "=IF(ISERROR(LEFT(I2,SEARCH("" - "",I2)-1)),I2,LEFT(I2,SEARCH("" - "",I2)-1))" 

我试图在P列中input公式后,我已经过了第一列,即字段= 10。 将topvisiblecell.formulainput到列P中。在过滤了列I后,公式将保持不变。假设我过滤了从行200开始的列I,但是在列P中,公式仍然是I2。 跟随我过滤的第一列如何改变?

我正在使用这个:

  .Range("A:Z").AutoFilter Field:=10, Criteria1:="10" .Range("B2:B200").SpecialCells(xlCellTypeVisible).Value = "=A" & .UsedRange.SpecialCells(xlCellTypeVisible).Row & "/2" 

这将在所有B行中放入公式“= A +行号+ / 2”,因此

 B2=A2/2, B3=A3/2 

等等。