我希望列出表格中的所有表格名称,以及最后一行和列中表格的相应单元格。下面的代码在工作表" A1.6Laster"中查找表名。 (除了表" Lastkategori")然后将它们列在表格" A1.6.5Lastkombinationer"中。
由于我可以添加/删除表格" A1.6Laster",首先删除/清除列表。
换句话说;下面的代码可以很好地列出表的名称,但是在名单旁边的列中,我希望列出最后一行和列中每个表的相应单元格。我是否需要在For Each循环中添加一些代码?
欢迎任何输入,如果您需要更多信息,请询问!
Sub Laster()
Dim tbl As ListObject
Dim wsSummary As Worksheet
Dim ws As Worksheet
Dim lRow As Long
Dim SearchText As String
Dim GCell As Range
SearchText = "Laster"
Set GCell = Worksheets("A1.6.5Lastkombinationer").Cells.Find(SearchText).Offset(0)
Set wsSummary = Worksheets("A1.6.5Lastkombinationer")
Set ws = Worksheets("A1.6Laster")
With Worksheets("A1.6.5Lastkombinationer").ListObjects("Laster").DataBodyRange
If .Rows.Count > 1 Then
.Offset(1, 0).Resize(.Rows.Count - 1, .Columns.Count).Rows.Delete
End If
End With
Worksheets("A1.6.5Lastkombinationer").ListObjects("Laster").DataBodyRange.Rows(1).ClearContents
lRow = GCell.Row
For Each tbl In Worksheets("A1.6Laster").ListObjects
If tbl.Name <> "Lastkategori" Then
lRow = lRow + 1
With wsSummary
.Cells(lRow, "A") = tbl.Name
End With
End If
Next tbl
ws.ListObjects("Lastkategori").ListColumns(1).DataBodyRange.Copy
wsSummary.ListObjects("Laster").DataBodyRange(1, 1).End(xlDown).Offset(1).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End Sub
答案 0 :(得分:0)
我假设当你说最后一行时,列是指每张桌子的右下角单元格。
在wsWsummary ... End With中添加以下代码段。它的作用是获取每个表的数据范围的单元格范围,并获取最后一行的最后一列,并将该单元格中的数据吐出到表名旁边的列中。
Dim r As Range
Dim last As Range
Set r = tbl.DataBodyRange
Set last = r.Cells(r.Rows.Count, r.Columns.Count)
ws.Cells(lRow, "B").Value = last