繁体   English   中英

自动填充到最后

[英]AutoFilling down to that last

我有这个简单的代码来将“表”应用于一个范围。

但是,它不会自动填充到最后一个值。 看不出我在“结束”和“结束”方面做错了什么。

ActiveSheet.ListObjects.Add(xlSrcRange, Range([F22].End(xlDown), [F22].End(xlToRight)), , xlYes).Name = "Table1"

引用范围

3.) 你的'执行'代码行

ws.ListObjects.Add(xlSrcRange, rg, , xlYes).Name = "Table1"

请注意,工作簿中第一个表的默认名称是Table1 ,这使得它在该行中可能是多余的。

1.) 工作表

Dim ws As Worksheet
' This maybe safer...
Set ws = ThisWorkbook.Worksheets("Sheet1")
' ... than this:
'Set ws = ActiveSheet

2.) 范围

Dim rg As Range

当前区域

' This will work if the range is in table format i.e. no empty rows or columns.
Set rg = ws.Range("F22").CurrentRegion   

' But it may fail if there is data adjacent to the left or to the top
' when you will want to use:
Dim FirstCell As Range: Set FirstCell = ws.Range("F22")
With FirstCell.CurrentRegion
    Set rg = FirstCell.Resize(.Row + .Rows.Count _
        - FirstCell.Row, .Column + .Columns.Count - FirstCell.Column)
End With

结尾

Set rg = ws.Range("F22", ws.Cells(ws.Cells(ws.Rows.Count, "F").End(xlUp).Row, _
    ws.Cells(22, ws.Columns.Count).End(xlToLeft).Column))

使用范围

With ws.UsedRange
    Set rg = ws.Range("F22", .Cells(.Rows.Count, .Columns.Count))
End With

寻找

With ws.Cells
    Set rg = ws.Range("F22", ws.cells( _
        .Find("*", , xlFormulas, , xlByRows, xlPrevious).Row, _
        .Find("*", , xlFormulas, , xlByColumns, xlPrevious).Column))
End With

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM