Получение времени выполнения 1004: сбой метода Range объекта _Worksheet при использовании ячеек - PullRequest
0 голосов
/ 16 июня 2020
Sub WorksheetLoop()
      Dim sht As Worksheet
      Dim LastRow As Long
      Dim LastColumn As Long
      Dim StartCell As Range
      Dim objTable As ListObject

      Dim WS_Count As Integer
      Dim I As Integer

      WS_Count = ActiveWorkbook.Worksheets.Count


       For I = 1 To WS_Count
            Set sht = Worksheets(I)
            Set StartCell = Range("A2")

            LastRow = sht.Cells(sht.Rows.Count, StartCell.Column).End(xlUp).Row
            LastColumn = sht.Cells(StartCell.Row, sht.Columns.Count).End(xlToLeft).Column

            ' error on next line
            sht.Range(StartCell, sht.Cells(LastRow, LastColumn)).Select

            Set objTable = ActiveSheet.ListObjects.Add(xlSrcRange, Selection, , xlYes)

            MsgBox ActiveWorkbook.Worksheets(I).Name

            Next I

End Sub

1 Ответ

0 голосов
/ 16 июня 2020

Попробуйте эту модифицированную версию вашего кода:

Sub WorksheetLoop()

    Dim sht As Worksheet
    Dim LastRow As Long
    Dim LastColumn As Long
    Dim rngStart As Range
    Dim rngTolist As Range
    Dim objTable As ListObject

    For Each sht In ActiveWorkbook.Worksheets

        Set rngStart = sht.Range("A2")

        LastRow = sht.Cells(sht.Rows.Count, rngStart.Column).End(xlUp).Row
        LastColumn = sht.Cells(rngStart.Row, sht.Columns.Count).End(xlToLeft).Column

        Set rngTolist = sht.Range(rngStart, sht.Cells(LastRow, LastColumn))
        Set objTable = sht.ListObjects.Add(xlSrcRange, rngTolist, , xlYes)

        MsgBox sht.Name & ", " & objTable.Name

    Next

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...