我收到以下代码的错误:
For Each Cell1 In Orderrange
If Worksheets("Resolve Orders").Range("A" & sourcecount) = Cell1.Value Then
dat = Worksheets("Onorder").Cells(ordercount, 1).Value
End If
ordercount = ordercount + 1
Next Cell1
dat = Worksheets("Onorder").Cells(ordercount, 1).Value
由编译器突出显示。
但是当我限制变量ordercount的值时,代码执行(ordercount为Long,将其声明为Integer给出溢出错误)。 以下代码有效:
For Each Cell1 In Orderrange
If Worksheets("Resolve Orders").Range("A" & sourcecount) = Cell1.Value Then
If ordercount > 1000 Then
ordercount = 1000
End If
dat = Worksheets("Onorder").Cells(ordercount, 1).Value
End If
ordercount = ordercount + 1
Next Cell1
以下是完整的代码:
Sub Resolve_Onorder()
'Import source range------------------------------
Dim LastRow1 As Long
LastRow1 = Worksheets("Stock Summary").Range("A2").End(xlDown).Row
Dim Sourcerange As Range
Set Sourcerange = Worksheets("Stock Summary").Range("A2:A" & LastRow1)
'-------------------------------------------------
'Export source range to worksheet-----------------
Dim C1 As Long
C1 = 2
For Each Cell In Sourcerange
Worksheets("Resolve Orders").Range("A" & C1) = Cell.Value
C1 = C1 + 1
Next Cell
'-------------------------------------------------
'Import week number-------------------------------
Dim Wknum As Integer
Dim Wknum1 As Integer
Dim Wknum2 As Integer
Dim Wknum3 As Integer
Dim Wknum4 As Integer
Wknum = Worksheets("MPS").Range("C2").Value
Wknum1 = Wknum + 1
Wknum2 = Wknum + 2
Wknum3 = Wknum + 3
Wknum4 = Wknum + 4
'-------------------------------------------------
'Import Onorder range------------------------------
Dim LastRow2 As Long
LastRow2 = Worksheets("Onorder").Range("C2").End(xlDown).Row
Dim Orderrange As Range
Set Orderrange = Worksheets("Onorder").Range("C2:C" & LastRow2)
'-------------------------------------------------
'-------------------------------------------------
Dim sourcecount As Long
Dim ordercount As Long
Dim ordercoldate As Long
Dim ordercolqty As Long
Dim ordercolrec As Long
Dim dat As String
Dim qty As String
Dim req As String
Dim tdat As String
Dim Colstr As String
Colstr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
sourcecount = 2
ordercount = 2
ordercoldate = 2
ordercoldate = 2
ordercolqty = 8
ordercolrec = 14
While sourcecount <= LastRow1
ordercoldate = 2
ordercolqty = 8
ordercolrec = 14
'''''''''''''''''''
Dim i As Long
i = 1
'''''''''''''''''''
For Each Cell1 In Orderrange
If Worksheets("Resolve Orders").Range("A" & sourcecount) = Cell1.Value Then
''''''''''''''''''''''''''''''''
Worksheets("VBAhide").Range("A" & i).Value = ordercount
i = i + 1
'''''''''''''''''''''''''''''''''
MsgBox "Reached"
Worksheets("Resolve Orders").Cells(sourcecount, ordercoldate).Value = Worksheets("Onorder").Cells(ordercount, 7).Value 'Worksheets("Onorder").Range("G" & ordercount).Value
Worksheets("Resolve Orders").Cells(sourcecount, ordercolqty).Value = Worksheets("Onorder").Cells(ordercount, 8).Value 'Worksheets("Onorder").Range("H" & ordercount).Value
Worksheets("Resolve Orders").Cells(sourcecount, ordercolrec).Value = Worksheets("Onorder").Cells(ordercount, 10).Value 'Worksheets("Onorder").Range("J" & ordercount).Value
MsgBox "Reached2"
ordercoldate = ordercoldate + 1
ordercolqty = ordercolqty + 1
ordercolrec = ordercolrec + 1
End If
ordercount = ordercount + 1
Next Cell1
sourcecount = sourcecount + 1
Wend
End Sub
答案 0 :(得分:0)
变化
Worksheets("Resolve Orders").Cells(sourcecount, ordercoldate).Value = Worksheets("Onorder").Cells(ordercount, 7).Value 'Worksheets("Onorder").Range("G" & ordercount).Value
Worksheets("Resolve Orders").Cells(sourcecount, ordercolqty).Value = Worksheets("Onorder").Cells(ordercount, 8).Value 'Worksheets("Onorder").Range("H" & ordercount).Value
Worksheets("Resolve Orders").Cells(sourcecount, ordercolrec).Value = Worksheets("Onorder").Cells(ordercount, 10).Value 'Worksheets("Onorder").Range("J" & ordercount).Value
到
With Worksheets("Resolve Orders")
.Cells(sourcecount, ordercoldate).Value = Cell1.Offset(, 4).Value 'Worksheets("Onorder").Range("G" & ordercount).Value
.Cells(sourcecount, ordercolqty).Value = Cell1.Offset(, 5).Value 'Worksheets("Onorder").Range("H" & ordercount).Value
.Cells(sourcecount, ordercolrec).Value = Cell1.Offset(, 7).Value 'Worksheets("Onorder").Range("J" & ordercount).Value
End With
并摆脱ordercount