首页 > 解决方案 > 我写了一个宏,我想逐个单元格重复,直到空单元格

问题描述

宏从单元格 F6 开始。

我想运行代码,然后当它完成后,让宏再次运行该过程,这次从单元格 F7 ......然后从 F8 重复该过程,依此类推,直到一个空单元格。

我希望这是有道理的。

该宏实质上是从一个数据透视表中打开一个数据集,调整格式并将其作为名称文件保存到桌面。

根据列表中以 F6 开头的文件数,我需要执行此过程 x 次。

    Range("F6").Select
    Selection.ShowDetail = True
    Columns("A:O").Select
    Columns("A:O").EntireColumn.AutoFit
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Selection.Copy
    Workbooks.Add
    ActiveSheet.Paste
    Range("A1").CurrentRegion.Select
    Sheets("Sheet1").Select
    Sheets("Sheet1").name = "MAP"

    Range("C2").Select
    Application.CutCopyMode = False
    ActiveCell.Copy

    Range("Q1").Select
    ActiveCell.PasteSpecial xlPasteValues


    Windows("Costs 2019.xlsm").Activate
    Sheets("Sheet1").Select
    ActiveWindow.SelectedSheets.Delete
    Range("H6").Select
    Application.CutCopyMode = False
    ActiveCell.Copy

    ActiveCell.FormulaR1C1 = " Electricity Invoicing August 2019"
    Windows("Book1").Activate

    Range("Q2").Select
    ActiveCell.PasteSpecial xlPasteValues

    Application.CutCopyMode = False
    Range("Q4").Select
    ActiveCell.FormulaR1C1 = "=CONCATENATE(R[-3]C,"""",R[-2]C)"

Dim FName           As String
Dim FPath           As String

    FPath = "C:\Users\" & Environ$("Username") & "\Desktop\"
    FName = Sheets("MAP").Range("Q4").Text
    Sheets("MAP").SaveAs Filename:=FPath & FName
    ActiveWindow.Close
    Range("A1").Select
End Sub

标签: excelvba

解决方案


推荐阅读