Excle VBA:使用联盟运行时1004将范围添加到预先存在的范围(它们在同一张纸上!)

Excel VBA:我正在尝试使用Application.Union将范围添加到预先存在的范围。 每次联盟进行尝试,我得到运行时错误1004.踢球者是范围在同一张纸上,所以我不知所措。

魔术在嵌套的FOR循环中的IF块中发生。 我已经包含了更多的上下文代码。 任何帮助将不胜感激!

代码示例:

'--------------------------------------- 'Get range of battle1 IDs from Sessions '--------------------------------------- Dim ws As Worksheet: Set ws = objSessionsWB.ActiveSheet Set rngBattleIDs = ws.Range("E3", ws.Range("E3").End(xlDown)) '--------------------------------------------------------- 'Get range of battles from Battles that match battle1 IDs '--------------------------------------------------------- Set ws = objBattlesWB.ActiveSheet Dim rngBattleStats As Range Dim bRow As Range For Each battle In ws.Range("A3", ws.Range("A3").End(xlDown)) For Each battleID In rngBattleIDs If battleID.Value = battle.Value Then 'Get row containing battle1 info Set bRow = ws.Range(battle.End(xlToLeft), battle.End(xlToRight)) 'Use Union to add additional rows to range If rngBattleStats Is Nothing Then Set rngBattleStats = bRow Else Set rngBattleStats = Union(rngBattleStats, bRow) End If End If Next Next 

看起来问题不在我的问题范围之内。 脚本正在workbook1中运行,但是我正在使用的范围在workbook2中。 解决scheme是从工作簿2运行联盟:

 Set rngBattleStats = workbook2.Application.Union(rngBattleStats, bRow)