VBA动态单元格范围调整大小

时间:2019-06-12 09:07:01

标签: excel vba

我已经编写了以下代码,并且我想格式化Grand Total行。我想使之动态,因为总计行的单元格每个月都会发生变化

Sub ReportData()

Application.ScreenUpdating = False

Dim Report As Worksheet
Set Report = WBNew.Worksheets("Report")

Report.UsedRange.Copy
With Sheets("Report").UsedRange
     .PasteSpecial xlPasteFormats
     .PasteSpecial xlPasteValues
     .Columns("A:Q").EntireColumn.Delete
     Set Rng = .FIND(What:="Grand Total", LookAt:=xlWhole, LookIn:=xlValues)
     Rng.Resize(, 18).Interior.ColorIndex = 20
End With

Application.ScreenUpdating = True

End Sub

例如,如果我在单元格A20中找到“总计”,那么我想扩展到最后使用的单元格,例如X20。但这是我的问题,并不是X20总是在变化。

1 个答案:

答案 0 :(得分:1)

使用.Cells(Rng.Row, .Columns.Count).End(xlToLeft)在找到Grand Total的行中查找最后使用的单元格,并使用它为范围着色。

Set Rng = .FIND(What:="Grand Total", LookAt:=xlWhole, LookIn:=xlValues)
If Not Rng Is Nothing Then
    With Sheets("Report")
        .Range(Rng, .Cells(Rng.Row, .Columns.Count).End(xlToLeft)).Interior.ColorIndex = 20
    End With
Else
    MsgBox "Grand Total was not found."
End If

请注意,您需要检查If Not Rng Is Nothing Then,否则,如果Grand Total不存在,则会出错。