我正在尝试将数据从一个工作簿复制到另一个工作簿,但是在完成复制后,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
你能帮我弄明白我为什么会这样吗?谢谢!
答案 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)