VBA копирует из одного листа Excel в другой лист Excel? - PullRequest
0 голосов
/ 04 мая 2018

Я в основном копирую один лист файла Excel на конкретный лист файла Excel (тот же файл, в котором я пишу макрос). Я получаю сообщение об ошибке - Ошибка времени выполнения '9': нижний индекс находится вне диапазона в строке WbTarget.Sheets ( "FPP") Диапазон. ( "A1: E654"). PasteSpecial
Я не так хорош в VBA-любая помощь, пожалуйста?

Sub XMLR()
Dim output As String
output = CreateObject("WScript.Shell").Exec("R CMD BATCH  filepath.R").StdOut.ReadAll
Call XML
End Sub

Sub XML()
Dim wbTarget            
Dim wbThis              
Dim strName             
Set wbThis = Workbooks.Open("file.xlsx")
wbThis.Activate
strName = ActiveSheet.Name
Set wbTarget = ActiveWorkbook
Application.CutCopyMode = False
wbThis.Sheets("Sheet1").Range("A1:E654").Copy
wbTarget.Sheets("FPP").Range("A1:E654").PasteSpecial
Application.CutCopyMode = False
wbTarget.Save
wbTarget.Close
wbThis.Close
Set wbTarget = Nothing
Set wbThis = Nothing
End Sub

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

Проблема здесь в том, что и WbTarget, и WbThis ссылаются на одну и ту же книгу.

Вы должны изменить декларацию:

Set wbTarget = ActiveWorkbook

до

Set wbTarget = Application.ThisWorkbook

0 голосов
/ 04 мая 2018

Немного сбивает с толку, но попробуйте это:

Sub XML()

Dim wbTarget As Workbook
Dim wbThis As Workbook
Dim strName As String

Set wbThis = Workbooks.Open("file.xlsx")

ThisWorkbook.Sheets("FPP").Range("A1:E654").Value = wbThis.Sheets("Sheet1").Range("A1:E654").Value

wbTarget.Save
wbTarget.Close
wbThis.Close

Set wbTarget = Nothing
Set wbThis = Nothing

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