Найдите последний столбец листа, используя имя переменной листов - PullRequest
0 голосов
/ 28 марта 2019

Я пытаюсь использовать переменную с именем sheet, чтобы найти последний столбец этого листа. Кажется, моя формула работает, если я называю лист, но не работает, когда я использую имя переменной для ссылки на него.

Dim wb As Workbook
Dim ws As Worksheet

Set wb = ThisWorkbook
Set ws = wb.Sheets("Sheet1")

Dim LastCol As Integer

''-------------------------------------------------''

LastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
MsgBox LastCol

Это должно привести к отображению столбца 8, но по какой-то причине возвращает 1. Если я заменим 'ws' на фактическое имя листа (как показано ниже), он будет работать правильно.

LastCol = Worksheets("Sheet1").Cells(1, Worksheets("Sheet1").Columns.Count).End(xlToLeft).Column

Я не понимаю, почему это не дает тот же результат.

1 Ответ

1 голос
/ 28 марта 2019

Три возможных решения:

Option Explicit

Sub test()

    Dim LastColumn As Long
    Dim wb As Workbook
    Dim ws As Worksheet

    Set wb = ThisWorkbook
    Set ws = wb.Worksheets("Sheet1")

    'Method 1
    With ws
        LastColumn = .Cells(7, .Columns.Count).End(xlToLeft).Column '<- Change number save to the row number you want to get the last column
    End With

    'Method 2
    With ThisWorkbook.Worksheets("Sheet1")
        LastColumn = .Cells(7, .Columns.Count).End(xlToLeft).Column
    End With

    'Method 3
    LastColumn = ThisWorkbook.Worksheets("Sheet1").Cells(7, ThisWorkbook.Worksheets("Sheet1").Columns.Count).End(xlToLeft).Column

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