Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA使用表和循环_Excel_Loops_Resize_Vba - Fatal编程技术网

Excel VBA使用表和循环

Excel VBA使用表和循环,excel,loops,resize,vba,Excel,Loops,Resize,Vba,创建VBA循环以重新调整Excel项目中所有表的大小 表名列表存储在“Tlist”命名范围中 如果表名被写入,这些代码都可以工作 该代码在这个循环中用于列计数,但在第二个引用x(re size)时,我得到一个错误“下标超出范围” 在调试时将鼠标悬停在第二个x上,Excel似乎正确地读取了它,但我无法让它重新调整表的大小—与列表对象函数不支持循环中的文本有关?或者我做这个循环是错误的,需要以不同的方式定义x吗?非常感谢您的帮助 Sub RSizeTables() Dim rr As

创建VBA循环以重新调整Excel项目中所有表的大小

表名列表存储在“Tlist”命名范围中

如果表名被写入,这些代码都可以工作

该代码在这个循环中用于列计数,但在第二个引用x(re size)时,我得到一个错误“下标超出范围”

在调试时将鼠标悬停在第二个x上,Excel似乎正确地读取了它,但我无法让它重新调整表的大小—与列表对象函数不支持循环中的文本有关?或者我做这个循环是错误的,需要以不同的方式定义x吗?非常感谢您的帮助

    Sub RSizeTables()
    Dim rr As Integer
    Dim cc As Integer
    Dim x As Range
    Dim £Table As Range

    Set £Table = Range("Tlist")

    For Each x In £Table

    rr = 2
    cc = Range(x).Columns.Count

    With Sheets("Data").ListObjects(x)
    .Resize .Range.Resize(rr, cc)

    End With

    Next x


End Sub

此代码将所有表的大小调整为两行:

Sub ResizeAll()
    Dim ws As Worksheet
    Dim lo As ListObject

    'If you only have tables in one sheet, use this
    Set ws = Sheets("Data")

    'Else this:
    'For Each ws in Sheets
    For Each lo In ws.ListObjects
        lo.Resize lo.Range.Resize(2)
    Next lo
    'Next ws
End Sub
如果只需要循环
TList
中的表,则可以执行以下操作:

Sub ResizeTList()
    Dim varTableName As Variant

    For Each varTableName In Range("TList")
        With Sheets("Data").ListObjects(varTableName)
            .Resize .Range.Resize(2)
        End With
    Next varTableName
End Sub

两个问题:1。您是否有意将表格调整为正好两行?2.Tlist是否包含工作表/工作簿中的所有表格或仅包含子集?Q1;是的,我有另一个删除数据的片段。我希望它们整洁——只有一排。是的,列表中有所有的表。那么下面的第一个代码就可以了-不需要
TList
。。。