Sub bandymas()
LastRow = Sheets("Darbinis").Cells(Sheets("Darbinis").Rows.Count, "D").End(xlUp).Row
dim i
i=0
for each c in Sheets("Darbinis").Range("D1:D" & lastRow)
i=i+1
If Sheets("Sàskaita-Faktûra").Range("d22") = c Then
Sheets("Darbinis").Range("O" & i) = Sheets("Sàskaita-Faktûra").Range("P3")
endif
next
End Sub
如果Sheets中的值(" Darbinis")范围(" D1:D")相同,那么一切都相同但不添加+1。
提前谢谢你。 大流士
答案 0 :(得分:0)
我找到了一个解决方案,由于P3单元格中的常规公式会增加+1,但是如果我首先执行粘贴值移动并更改源位置然后它可以工作,代码看起来:
Private Sub CommandButton2_Click()
Range("P3").Select
Selection.Copy
Range("P5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
lastrow = Sheets("Darbinis").Cells(Sheets("Darbinis").Rows.Count, "D").End(xlUp).Row
Dim i
i = 0
For Each c In Sheets("Darbinis").Range("D1:D" & lastrow)
i = i + 1
If Sheets("Sàskaita-Faktûra").Range("d22") = c Then
Sheets("Darbinis").Range("O" & i) = Sheets("Sàskaita-Faktûra").Range("P5").Value
End If
Next
End Sub
然后它起作用。
答案 1 :(得分:-1)
实际上可以解决什么问题!错误信息或工作但不符合预期?
不确定是否有必要,但你的变量是lastRow&我是整数。我将它们转换为字符串以用于范围引用:即从
开始for each c in Sheets("Darbinis").Range("D1:D" & lastRow)
到
for each c in Sheets("Darbinis").Range("D1:D" & CSTR(lastRow))