RangeSpecial方法的范围运行错误

时间:2015-03-27 12:45:37

标签: excel vba excel-vba

Sub LoopOtherRevenue()

Dim MyFile As String
Dim FilePath As String
FilePath = "C:\Users\jdubbaneh002\Desktop\Racetrac Other\"
MyFile = Dir(FilePath)

Do While Len(MyFile) > 0
If MyFile = "Book1.xlsm" Then
Exit Sub
End If

ActiveSheet.Range("A1:B14").Copy

Workbooks.Open (FilePath & MyFile)
ActiveWorkbook.Worksheets("A2) Monthly P&L (Source)").Activate
Range("B746:C759").PasteSpecial xlPasteValues
Application.CutCopyMode = False
ActiveWorkbook.Close

MyFile = Dir

Loop

End Sub

在行范围内获取粘贴特殊错误(" B746:C759")。PasteSpecial xlPasteValues 这些值被粘贴到组合框中。这就是错误的来源。

3 个答案:

答案 0 :(得分:1)

对我来说,似乎文件路径缺少" \"

FilePath = "C:\Users\jdubbaneh002\Desktop\Racetrac Other"
...
MyFile = Dir(FilePath)
...
If MyFile = "Book1.xlsm" Then
...
Workbooks.Open (FilePath & MyFile)

<强>正确:

Workbooks.Open (FilePath & "\" & MyFile)

你试过调试吗?它在哪里抛出错误?

答案 1 :(得分:0)

我可以看到各种各样的问题,因为您在打开第二个工作簿后使用ActiveWorkbookActiveWorkbook是否仍然指向代码所在的那个,或者它实际上指向您刚刚打开的那个?

创建&amp;设置一个as Workbook变量,将代码所在的变量分配给一个变量,并将工作簿分配给另一个变量。这将消除所有混乱。

答案 2 :(得分:0)

试试这个:

Sub LoopOtherRevenue()
Dim rgCopy as Range
Dim MyFile As String
Dim FilePath As String
Dim wb as Workbook
FilePath = "destination folder\"
MyFile = Dir(FilePath)
Set rgCopy = ActiveSheet.Range("A1:B14")
Do While Len(MyFile) > 0
If MyFile = "Book1.xlsm" Then
Exit Sub
End If


set wb Workbooks.Open(FilePath & "\" & MyFile)
rgCopy.Copy Destination:=wb.Worksheets("A2) Monthly P&L (Source)").Range("B746")
wb.Close

MyFile = Dir

Loop

End Sub