我很难将活动单元格行的范围分配给范围变量。当我尝试在范围函数调用中复制此变量时,我得到"方法范围的对象全局失败"错误。有什么提示吗?
Sub GroupLanes()
Dim Origin, Destination, ODPair As String
Dim mainWorkbook As Workbook
Dim Index As Long
Dim IB, OB As Range
Set mainWorkbook = ActiveWorkbook
Index = 6
Range("G" & Index).Select
Origin = ActiveCell.Value
Debug.Print Origin
Range("H" & Index).Select
Destination = ActiveCell.Value
Debug.Print Destination
Range("AV" & Index).Select
ODPair = ActiveCell.Value
Debug.Print ODPair
Do Until IsEmpty(ActiveCell)
Set IB = ActiveCell.EntireRow
Range("AV6").Select
ODPair = ActiveCell.Value
Do Until IsEmpty(ActiveCell)
If (Mid(ODPair, 1, 5) = Destination And Mid(ODPair, 6, 5) = Origin) Then
Set OB = ActiveCell.EntireRow
Range(IB).Copy
Sheets("Sheet2").Range("A" & Index & ":" & "AV" & Index).PasteSpecial xlPasteValues
Range(OB).Copy
Sheets("Sheet2").Range("A" & Index & ":" & "AV" & Index).PasteSpecial xlPasteValues
ActiveCell.Offset(1, 0).Select
ODPair = ActiveCell.Value
Else
ActiveCell.Offset(1, 0).Select
ODPair = ActiveCell.Value
Debug.Print ODPair
End If
Loop
Index = Index + 1
Range("G" & Index).Select
Origin = ActiveCell.Value
Range("H" & Index).Select
Destination = ActiveCell.Value
LoopEnd Sub
答案 0 :(得分:1)
变化:
Range(IB).Copy
到
IB.Copy
IB已经是Range
(有点,见下文)所以当你在范围函数中调用它时,它正在寻找一个名称等于&#的范围&# 39;在你的床单上的IB。
除了Scott关于Select
和Activate
的提示外,请注意
Dim IB, OB As Range
将OB声明为范围,就像您想要的那样,但将IB声明为Variant
。有关详细信息,请参阅此Chip Pearson page并向下滚动到"注意使用一个Dim声明声明的变量。"