2012-10-16 204 views
0

首先我知道这个标题或接近它的其他类似问题,我已尝试在页面上的解决方案,但他们不工作。运行时错误'9'下标超出范围 - 复制范围

我想使用Excel VBA将一个范围复制到另一个范围。我从中复制的工作表是201209TB.xlsx和201210DB.xlsx。

单元格值是总和的结果,并且是单元格F396,需要复制到新工作簿中的单元格J10。这是我迄今为止的代码;

Sub CopyRange() 
' 
' CopyRange Macro 
' Copy range from TrialBalance to Dashboard 
' 
    Dim Rng1 As Range 
    Dim Rng2 As Range 
    Set Rng1 = Workbooks("201209TB.xlsx").Sheets("excel").Range("F396") 
    Set Rng2 = Workbooks("201210DB.xlsx").Sheets("Sheet1").Range("J10") 
    Rng1.Copy Rng2 
End Sub 

细胞代码是= SUM(E409-E396)和结果应当是-2,214,534.78 由于


它被扔了一个误差的原因,它正在试图将工作簿使用未由其他代码打开因为对我而言

+0

请张贴了'Formula'是在'F396',你想在结果'J10' –

+0

请参阅修改最后一行是值 – JamesDev

+0

其他人对此有何帮助?不知道为什么它不起作用 – JamesDev

回答

1

一个错误。如果你想J10是一个公式=SUM(E409-E396) refereing的范围上Workbooks("201210DB.xlsx").Sheets("Sheet1")使用

Rng2.Formula = Rng1.Formula 

如果你想J10Workbooks("201209TB.xlsx").Sheets("excel")使用

Rng2.Value = Rng1.Value 
+0

如果我们使用Rng2.Value = Rng1.Value来替换Rng1.Copy Rng2,那么这不起作用 – JamesDev

+0

所以问题是我试图在所有使用中的工作簿关闭的情况下运行此问题,现在问题已修复但作为克里斯neilsen的答案做了一个更有效的工作,我会接受他的回答 – JamesDev

+0

它抛出一个错误的原因是,它试图使用的工作簿没有被其他代码打开,由于我的错误 – JamesDev

相关问题