如果条件匹配(但不是+1),则excel vba从另一个工作表复制/粘贴数据

时间:2016-03-14 16:43:53

标签: excel vba excel-vba

几乎解决了问题,但仍然需要帮助。 这是代码:

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。

提前谢谢你。 大流士

2 个答案:

答案 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))