Vba即使在用“itemwidth”偏移之后仍然采用原始select,

我正在build立一个macros,find一个头,然后偏移1行以下,我想填充整个列的值。 但是,当我运行的macros正在改变的偏移量的值为必需的,但一旦它到了Selection.filldown其复制头偏移值的地方。 而且我也无法找出如何跳过,如果没有findselect。 任何人都可以帮忙吗?

Sub Macro7() Rows("3:3").Select Selection.Find(What:="item_width").Select Selection.Offset(1, 0).Select ActiveCell.FormulaR1C1 = "1" Selection.FillDown End Sub 

正如Christmas007所说,删除.select.activate

  Sub Macro7() Dim rng As Range Dim rws As Long rws = Range("A" & Rows.Count).End(xlUp).Row - 2 Set rng = Rows("3:3").Find(What:="item_width") If Not rng Is Nothing Then rng.Offset(1, 0).FormulaR1C1 = "1" rng.Offset(1, 0).Resize(rws).FillDown End If End Sub 

也是你填充的方式,因为它只是一个单元格,它直接填充单元格的上方。 要填充范围,您需要指定范围范围。 以上是一种方式。