[英]AutoFilling down to that last
我有这个简单的代码来将“表”应用于一个范围。
但是,它不会自动填充到最后一个值。 看不出我在“结束”和“结束”方面做错了什么。
ActiveSheet.ListObjects.Add(xlSrcRange, Range([F22].End(xlDown), [F22].End(xlToRight)), , xlYes).Name = "Table1"
ws.ListObjects.Add(xlSrcRange, rg, , xlYes).Name = "Table1"
请注意,工作簿中第一个表的默认名称是Table1
,这使得它在该行中可能是多余的。
Dim ws As Worksheet
' This maybe safer...
Set ws = ThisWorkbook.Worksheets("Sheet1")
' ... than this:
'Set ws = ActiveSheet
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.