2016-03-04 109 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我很高興。請過幾分鐘再回來,並將其標記爲正確。 –