从“ ThisWorkbook”问题中复制

时间:2018-11-29 14:15:17

标签: excel vba excel-vba

在“ 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 :(得分:1)

您不必总是声明一个变量-有时直接引用您的对象会更容易。下面的方法似乎比您目前使用的方法简单得多。

只需为工作表Closings Template声明工作表变量x,而不是使变量FmSheetFmRngToSheet变暗即可

我要摆脱的其他变量是ToRngFM.Range("O2")。只需将实际值替换为这些值即可。您的代码将更易于遵循,并且需要更少的索引返回到变量块才能知道值是什么


该错误是由于范围无效引起的。没有范围“ 02”。这样输入代码可能有助于发现这些问题,因为您将直接在代码中输入范围,例如Sub Test1() Dim FM As Worksheet: Set FM = ThisWorkbook.Sheets("Closings Template") FM.Range("O2").Copy End Sub

entry