1

所以我想创建一个循环,在所有工作表中自动填充同一列。我记录了宏,但显然这是很多代码。我尝试使用循环,但是我想自动填充的一些变量在末尾有数字(例如“ULA2”),因此使用自动填充它会使整个列 ULA2、ULA3、ULA4、... 如何我可以纠正这个吗?这是我的代码:

Sheets("ULA2").Select
    Range("F2").Select
    ActiveCell.FormulaR1C1 = "ULA2"
    Range("F4").Select
    ActiveCell.FormulaR1C1 = "ULA2"
    Range("F5").Select
    ActiveCell.FormulaR1C1 = "ULA2"
    Range("F6").Select
    ActiveCell.FormulaR1C1 = "ULA2"
    Range("F7").Select
    ActiveCell.FormulaR1C1 = "ULA2"
    Range("F8").Select
    ActiveCell.FormulaR1C1 = "ULA2"
    Range("F9").Select
    ActiveCell.FormulaR1C1 = "ULA2"
    Range("F10").Select
    ActiveCell.FormulaR1C1 = "ULA2"
    Range("F11").Select

LastRow = Cells(Rows.Count, "F").End(xlUp).Row
Range("F2").AutoFill Destination:=Range("F2:F" & LastRow), Type:=xlFillDefault

Sheets("BO").Select
    Range("F2").Select
    ActiveCell.FormulaR1C1 = "BO"
    Range("F2").Select
    Selection.AutoFill Destination:=Range("F2:F"), Type:=xlFillDefault
    Range("F2:F").Select
4

2 回答 2

1

这应该可以解决问题。它将遍历所有工作表并设置行F(在标题之后并向下到底部)等于工作表的名称

Dim i As Long
Dim LastRow As Long

For i = 1 To Worksheets.count
    With Sheets(i)
        LastRow = .Cells(Rows.count, "F").End(xlUp).row
        .Range("F2:F" & LastRow).Value2 = .Name
    End With
Next i
于 2018-08-03T19:14:43.553 回答
1

如果要在所有工作表上执行此操作,可以使用以下内容:

For Each mySht In Application.Worksheets
    mySht.Range("F2:F" & mySht.UsedRange.Row + mySht.UsedRange.Rows.Count - 1).Value = mySht.Name
Next mySht
于 2018-08-03T19:20:44.377 回答