2016-03-14 20 views
-1

幾乎解決了問題,但仍然需要幫助。 這裏是代碼:excel vba複製/粘貼數據fron另一個表如果條件匹配(但不是+1)

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 

一切相同的,但不加1,如果在表格中的值(「Darbinis」)範圍(「D1:d」)。是相同的。

預先感謝您。 Darius

+0

已發佈的問題:http://stackoverflow.com/questions/35972372/excel-vba-to-copy-paste-data-fron-another-sheet-if-conditions-match – cutzero

回答

-1

不能真正解決出了什麼問題!錯誤信息或工作,但不是預期的?

不知道是否有必要,但你的變量lastRow &我是整數。我想將它們轉換爲字符串使用範圍參考:從

for each c in Sheets("Darbinis").Range("D1:D" & lastRow) 

for each c in Sheets("Darbinis").Range("D1:D" & CSTR(lastRow)) 
+0

它保持不變,增加+ 1 –

+0

最後一行已經在字符串中投射 – cutzero

0

我找到了解決方法,由於它增加了+1的P3細胞常規公式,但如果我這樣做,首先糊狀值移動和改變源位置,然後它的工作原理,代碼如下:

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 

那麼它工作,因爲它suposed。