Кнопка исчезает и код больше не работает - PullRequest
0 голосов
/ 02 ноября 2018

Я хочу скопировать / пропустить один лист из другого файла Excel. Ничего сложного, у меня есть эта функция (которая работала раньше).

Но теперь говорят, что есть проблема в строке "ThisWorkbook.Activate".

Как это возможно? Файл не может найти себя?

Sub Bouton1_Cliquer()


Workbooks.Open ("the way to the excel source")

    Sheets("produits").Activate
    Sheets("produits").Range("A1:AZ200").Copy

    ThisWorkbook.Activate
    Sheets("Produits").Select
    ActiveSheet.Range("A5").Select
    ActiveSheet.Paste


End Sub

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

Другая функция не работает:

Sub UpdateData()
    Dim WsDest As Worksheet 'destination workbook to write in
Set WsDest = Workbook("YES").Worksheets("maybe")

Dim WsSrc As Worksheet 'source workbook to match with
    Set WsSrc = Workbook("YES").Worksheets("Perhaps")

Раньше это работало, это та же проблема, файл не может найти себя. Я попытался заменить ThisWorkbook на полное имя, как в примере .. до этого было:

Set WsDest = ThisWorkbook.Worksheets("maybe")
Set WsSrc = ThisWorkbook.Worksheets("Perhaps")
0 голосов
/ 02 ноября 2018

Вы можете заменить на следующее, что быстрее, так как не имеет накладных расходов .Select и .Activate. Вы также должны включить имя рабочей книги для диапазона, из которого вы копируете, или установить открытую рабочую книгу в переменную и использовать ее. Вы бы заменили Activeworkbook переменной.

ActiveWorkbook.Worksheets("produits").Range("A1:AZ200").Copy ThisWorkbook.Worksheets("Produits").Range("A5")

С переменной рабочей книги:

Dim wb As Workbook
Set wb = Workbooks.Open("the way to the excel source")
wb.Worksheets("produits").Range("A1:AZ200").Copy ThisWorkbook.Worksheets("Produits").Range("A5")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...