Как получить Имя рабочей книги после открытия рабочей книги с помощью workbooks.open? - PullRequest
2 голосов
/ 27 марта 2019
Workbooks.Open "C:\abc.xlsx"
Workbooks("abc").Worksheets("Sheet1").Range("A1:B7").Clear

В приведенном выше коде я открываю книгу, используя Workbooks.Open в первой строке. Во второй строке я получаю доступ к открытой книге, используя имя книги.

Как получить доступ к открытой книге без имени файла во второй строке?

(я хочу создать функцию и не хочу отдельно передавать пути к файлам и имена файлов)

Ответы [ 3 ]

4 голосов
/ 27 марта 2019

Вам необходимо использовать ссылки и ссылаться на рабочую книгу и лист, например:

Option Explicit

Sub OpenWorkbook()

   Dim wb As Workbook, ws As Worksheet

   Set wb = Workbooks.Open("C:\abc.xlsx", UpdateLinks:=False, ReadOnly:=True)
   Set ws = wb.Sheets("Sheet1")

   ws.Range("A1:B7").ClearContents

End Sub

Обратите внимание, что параметры в открытой рабочей книге, такие как Updatelinks и ReadOnly, можно изменить на Trueили False как вам нужно.

3 голосов
/ 27 марта 2019

Создайте объект типа Excel.Workbook и откройте рабочую книгу в нем.

Примерно так

Dim w as Excel.Workbook
set w= Workbooks.Open ("C:\abc.xlsx")

, а затем вы можете сказать

w.worksheets.add.....

и т. Д.

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

Вы можете сократить свой код:

Option Explicit

Sub OpenWb()

    Dim ws As Worksheet

    Set ws = Workbooks.Open("C:\abc.xlsx").Worksheets("Sheet1")

    With ws '<- Use With Statement to avoid sheet repetition
        .Range("A1:B7").ClearContents
    End With

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