VBA将值插入新行中的空单元格中

已经search了3或4个小时,但找不到任何工作。

我想要什么和已经做了什么:

If meinWert > 16000000 And meinWert < 20000000 Then Sheets("Aufträge").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = Date Sheets("Aufträge").Cells(Rows.Count, 1).End(xlUp).Offset(0, 1) = meinWert 

meinWert是来自Scannerinput的一个订单号的值。 上面的代码是已经运行的更大的一部分。 上面的代码的结果是这样的: 在这里输入图像说明

而且每个订单都有一些项目(从1到10个项目),现在我需要一个跳转到“C”行并插入项目代码的代码。 正如我所说,每个订单有多个项目,所以这些项目(通过扫描仪input)应该列在同一行作为正确的订单号码,如下所示: 在这里输入图像说明

我想过了。 像这个Sheets("Aufträge").Cells(Target.Row, 255).End(xlToLeft).Offset(0, 1)但它不工作。

而不是你有什么,你应该找出行一次,然后使用这一行来插入所有的值:

 Dim row As Long Dim ws As Worksheet Dim itemCount As Integer Dim bolMoreItems As Integer Set ws = Sheets("Aufträge") If meinWert > 16000000 And meinWert < 20000000 Then bolMoreItems = True row = ws.Cells(Rows.Count, 1).End(xlUp).row + 1 ws.Cells(row, 1) = Date ws.Cells(row, 2) = "test" itemCount = 1 'this isn't really needed except as a count to how many items there are. While bolMoreItems = True ws.Cells(row, 2 + itemCount) = "value" & itemCount 'instead of "value" & itemCount, put in whatever the value is. If there_are_no_more_items Then 'need some check to determine if there are more items.... bolMoreItems = False End If itemCount = itemCount + 1 Wend End If 

我已经使用了一个variables来使表单更容易阅读和编码。 显然,我不知道有多less物品,所以你需要做一些事情来弄清楚。 我也不知道你要插入新列,所以留给你。

顺便说一句,这不适合你,因为Target是一个关键字。 我不知道你的代码的其余部分在做什么,但是这在事件处理程序中用来指定触发事件的单元格。 你可能没有这样的东西,所以这是行不通的。 你可以做这样的事情,但是看起来像这样:

  Sheets("Aufträge").Cells(Sheets("Aufträge").Cells(Rows.Count, 1).End(xlUp).Row, 255) _ .End(xlToLeft).Offset(0, 1) 

在哪里_只是继续下一行的声明。 这最终不清楚你想要做什么,不是最好的解决scheme。