0

您好,希望一切都好:) 无法弄清楚如何循环和选择下一个单元格,因此当 h3:z3 范围内的单元格为空时,它将停止 :)

它正在做的是从 h3 中选择值粘贴到 b3 运行另一个宏,该宏在 e3 中给出一个订单号,然后将其复制并粘贴到 h4 中,然后它将转到 I3 中的下一个单元格粘贴到 b3 中的下一个单元格从 e3 复制结果并粘贴到 I4 并做同样的事情

谢谢

For Each cell In Range("H3:Z3")

If IsEmpty(cell.Value) Then Exit For
'select ammount and place in lookup
Range("H3").Select
Selection.Copy
Range("B3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

' fill in order numbers
bulkON_Click

'select order and past under postcode
Range("E3").Select
Application.CutCopyMode = False
Application.CutCopyMode = False
Selection.Copy
Range("H4").Select
ActiveSheet.Paste

Loop
4

1 回答 1

2

我可能会在此代码中更改很多内容。这应该让你开始。

对于初学者来说,For循环需要一个Next语句,而不是 a Loop(用于Do块。此外,您应该不惜一切代价避免复制/粘贴,以支持将值直接写入目标单元格。

我假设单元格“B3”和“E3”是恒定的,并且您正在迭代 H3:Z3 中的单元格并计算一些值以放入 H4:Z4 中的相应单元格中。

For Each Cell In Range("H3:Z3")

    If Cell.Value = vbNullString Then Exit For
    'select ammount and place in lookup
    Range("B3").Value = Cell.Value  '<< no need to "copy & paste", just write the value directly
    ' fill in order numbers
    bulkON_Click

    'insert the value under postcode
    ' this OFFSET refers to the cell 1 row below the "Cell"
    Cell.Offset(1, 0).Value = Range("E3").Value

Next
于 2013-02-22T03:44:01.617 回答