2016-03-04 108 views
0

我有一个代码与另一个代码合并。对自己的两个代码工作正常,但现在我遇到一个1004运行时错误,我无法弄清楚,为什么它给到最后一行1004错误的第二个“设置= Varrange ......”vba脚本1004错误

Sub Simulate500k() 

Dim i As Integer 
Dim p As Integer 
Dim k As Integer 
Dim ROI As Integer 
Dim Nummer As Integer 
Dim NBC As Integer 
Dim Spalte As Integer 
Dim n As Integer 
Dim m As Integer 
Dim nblock As Integer 




Nummer = Worksheets("Control").Cells(10, 2).Value 
ROI = Worksheets("Control").Cells(9, 3).Value 
NBC = Worksheets("Control").Cells(10, 5).Value 
Spalte = Worksheets("Control").Cells(7, 5).Value 
n = Worksheets("Control").Cells(11, 5).Value 
nblock = Worksheets("Control").Cells(12, 5).Value 


For k = nblock To 260 

Worksheets("table").Cells(ROI * 17 + 1, 4 + 12 * NBC).Copy 
Worksheets("Control").Cells(15, 2).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 
Worksheets("table").Cells(ROI * 17 + 1, 6 + 12 * NBC).Copy 
Worksheets("Control").Cells(6, 2).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 

For m = 1 To 14 

For i = 4 To 103 

    Worksheets("500k").Cells(5, 2).Copy 
    Worksheets("500k").Cells(2, i).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 

    Set varRangeselect1 = Worksheets("500k").Range(Cells(6, 2), Cells(106, 2)) 
    Set varRangeSelect2 = Worksheets("500k").Range(Cells(6, i), Cells(106, i)) 
    varRangeselect1.Copy 
    varRangeSelect2.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 
+0

我没有看到你声明'varRangeSelect2'变量的地方。你确定你把它声明为一个范围变量吗? – nbayly

回答

4

您需要为所有范围对象指定家谱,包括Range()中的Cells()。最简单的是用With块:

With Worksheets("500k") 
    Set varRangeselect1 = .Range(.Cells(6, 2), .Cells(106, 2)) 
    Set varRangeSelect2 = .Range(.Cells(6, i), .Cells(106, i)) 
End with 

所以With块任何与.被分配到With声明所述的血统开始内部。

+0

这个工程,非常感谢你! – IschaIschratioh

+0

@IschaIschratioh我很高兴。请过几分钟再回来,并将其标记为正确。 –