Копирование из задач "ThisWorkbook" - PullRequest
0 голосов
/ 29 ноября 2018

В строке «x.worksheets ...» он продолжает выдавать «Ошибка индекса вне диапазона».Возможно, ошибка связана с тем, как я использую «ThisWorkbook», но я не уверен.Я все еще очень новичок в этом.Моя цель - скопировать из «ThisWorkbook» и вставить значения в отдельную книгу.

Dim x As Workbook
Set x = ThisWorkbook

fmPath = "G:\Finance Department\Banking Dashboard\"
FmFile = "Testing_Testing.xlsm"
FmSheet = "Closings Template"
FmRng = "02"
fmRef = fmPath & FmFile
ToPath = "G:\Budgets and Financial\CLT Budget Templates\"
ToFile = "Belle Grove Manor.xlsx"
ToSheet = "Sheet 2"
ToRng = "E2"
ToRef = ToPath & ToFile
x.Worksheets(FmSheet).Range(FmRng).Copy
Workbooks.Open(ToRef).Worksheets(ToSheet).Activate
ActiveSheet.Range(ToRng).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

1 Ответ

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

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

Просто объявите переменную листа FM для вашего листа Closings Template вместо затемнения ваших переменных x, FmSheet и FmRng

Другие переменные, от которых я избавлюсьиз них ToSheet и ToRng.Просто замените фактическое значение обратно туда, куда они идут.Ваш код будет легче следовать, и потребуется меньше индексации обратно к блоку переменных, чтобы узнать значение


Ошибка вызвана неверным диапазоном.Не существует диапазона «02».Подобный ввод кода может помочь выявить эти проблемы, поскольку вы будете вводить диапазон непосредственно в коде, например FM.Range("O2")

Sub Test1()

Dim FM As Worksheet: Set FM = ThisWorkbook.Sheets("Closings Template")

FM.Range("O2").Copy

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