Установите переменную диапазона VBA в Набор ячеек в другой книге - PullRequest
0 голосов
/ 09 апреля 2020

Вопрос : у меня есть книга, скажем, книга A, в которую я вставил модуль, содержащий макрос VBA. В этом макросе я объявил набор диапазонов - например, dim rngName как Range. Макрос открывает файл в указанной папке, я не знаю имя этого файла. Я хочу установить rngName в диапазоне от файла, который я только что открыл. Как мне это сделать?


Пример кода, который я написал:

Public Sub Foo()

Dim rngName As Range
Dim lastRow as Long 

Code Open A Workbook  'and so this should be the active workbook after opening ?

With ActiveWorkbook  
  LastRow = Range("A" & Rows.Count).End(xlUp).Row
  Set rngName = Range("A1" & LastRow).Cells

End With

End Sub

Я знаю, что переменной lastRow присвоено правильное значение. Обратите внимание, что мой скрипт не выдает ошибку, однако диапазонам ничего не назначено.

Приветствия

1 Ответ

1 голос
/ 09 апреля 2020
  1. Не думайте, что вновь открытая рабочая книга является активной рабочей книгой. Присвойте его переменной.

  2. Вам необходимо указать рабочий лист.

  3. должно быть .Range ("A1: A" & lastRow)


Public Sub Foo()
    Dim wkb As Workbook
    Set wkb = Workbooks.Open("filename")

    With wkb.Worksheets("Sheet1") 'Change to your sheet name
        Dim lastRow As Long
        lastRow = .Range("A" & .Rows.Count).End(xlUp).Row

        Dim rngName As Range
        Set rngName = .Range("A1:A" & lastRow).Cells
    End With

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