我有一组长度变化的数据。我想做一个做各种事情的宏,包括把整个数据集做成一个表格?
使用 Selection.End(xlToRight) 和 xlToDown 来选择数据是有效的,但是当录制的宏将其转换为表格时,它只会在选定的范围内执行。
这是记录功能给我的:
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$H$26095"), , xlYes).Name _
= "Table1"
Range("Table1[#All]").Select
有没有办法根据上面的范围选择使范围动态化?
答案 0 :(得分:0)
Sheet1
中的所有表格。立>
Option Explicit
Sub RangeToTable()
Dim wb As Workbook: Set wb = ThisWorkbook ' workbook containing this code
Dim ws As Worksheet: Set ws = wb.Worksheets("Sheet1")
Dim rg As Range: Set rg = ws.Range("A1").CurrentRegion
Dim tbl As ListObject
Set tbl = ws.ListObjects.Add(xlSrcRange, rg, , xlYes)
tbl.Name = "Table1"
End Sub
Sub DeleteAllTables()
Dim wb As Workbook: Set wb = ThisWorkbook ' workbook containing this code
Dim ws As Worksheet: Set ws = wb.Worksheets("Sheet1")
Dim tbl As ListObject
For Each tbl In ws.ListObjects
tbl.Delete
Next tbl
End Sub
如果你想“坚持你的枪”(不推荐),你可以使用以下单线:
ActiveSheet.ListObjects.Add(xlSrcRange, _
Range("A1").CurrentRegion, , xlYes).Name = "Table1"
无需选择任何内容。