VBA:将数据从一个工作簿复制到另一个下标超出范围

时间:2017-05-15 15:33:30

标签: vba loops subtraction

我正在尝试将数据从一个工作簿复制到另一个工作簿,但是在完成复制后,Subcript会超出范围。

这是代码:

Sub TransferCorps()

Dim wbSource As Workbook

Set wbSource = Workbooks.Open("H:\Carol Facklam\SL Entities.xlsx")
Sheets("Temp").Range("A1") = wbSource.Sheets("Sheet1").Range("A1")

wbSource.Close (True)

End Sub

'This is the data that is copied
00SLH   Saint Lukes Hospital
00SLS   Saint Lukes South Hospital
0SLNH   Saint Lukes Northland Hospital
SLHLS   St Lukes Hospital Lees Summit
00CMH   Cushing Memorial Hospital
CRITT   Crittenton
0HOSP   Saint Lukes Homecare Hospice
0MPIA   Medical Plaza Imaging Assoc
SLCHS   SL College of Health Sciences
SLRTL   Saint Lukes Radiation Therapy-Liberty LL
00AUA   Advanced Urological Associates
0SLCC   SLCC, Inc.
0SL15   Saint Lukes Neighborhood Clinic LLC
000MG   Saint Lukes Medical Group
0SLPS   SL Physician Specialists

你能帮我弄明白我为什么会这样吗?谢谢!

2 个答案:

答案 0 :(得分:2)

在您打开Source-Workbook的那一刻,它会获得活动工作簿。 Sheets("Temp")将从活动工作簿中获取,这可能不是您想要的(并且我假设sourceWB中没有“temp”表格,导致下标超出范围错误。)

您必须告诉Excel在哪里找到临时表。如果它与您的宏代码是相同的工作簿,则可以使用

thisworkbook.sheets("Temp").Range...

否则,您应该使用目标工作簿分配工作簿变量wbDest并写入

wbDest.sheets("Temp").Range...

答案 1 :(得分:0)

我使用了以下内容,它就像一个魅力。谢谢!

ThisWorkbook.Sheets(" Sheet1")。范​​围(" A1:B15")。复制ActiveWorkbook.Sheets(" Temp")。范​​围(&# 34; A1&#34)