2017-01-21 98 views
-5

入住這基於單元格的值和複製的行上了一個新表粘貼

enter image description here

我需要幫助。我想全細胞從工作表名稱「組件」複製只有在列C值> 0到一個新的工作表名「載入列表」

可有人請給我這個宏代碼?

+6

歡迎堆棧溢出!您可以先參加[tour](http://stackoverflow.com/tour)並學習[如何提出一個好問題](http://stackoverflow.com/help/how-to-ask)並創建一個[最小,完整和可驗證](http://stackoverflow.com/help/mcve)第一次嘗試的例子。 StackOverflow絕對不是「爲我做的網站」。 –

+0

使用'Autofilter'方法代替循環 –

回答

1

你的新工作表,您可以添加此條件下細胞的細胞或範圍:

= IF(!組件C5> 0,組件A5)

其中C5具有thevalue進行比較,A5如果情況發生,則具有價值副本。

+0

但是如果'Components!C5 <= 0',那個公式會複製一些東西(值'False'),這不是OP要求的。 – YowE3K

0

在我的揮杆!

通過@sweetkaos給出的公式將正常工作,如果你要複製的數據,因爲它是用空格在未找到數據。

我會想象一個稍微複雜的情況。我假設你只需要在下一個格式中顯示一行,如圖所示。

而且方便假設如下: 一個。兩張表都有固定的起始點 b。 2列列表 - 將被複制和粘貼,第二列的值爲 c。連續的,無中斷源列表 d。 vba的基礎知識,所以你可以重組代碼

這裏是代碼。嘗試逐行理解它。快樂超越!

Sub populateLoadList()  
'declaring range type variables 
Dim rngStartFirstList As Range, rngStartLoadList As Range 

'setting values to the range variables 
'you must change the names of the sheets and A1 to the correct starts of your two lists 

Set rngStartFirstList = Worksheets("Name_of_your_fist_sheet").Range("A1") 

Set rngStartLoadList = Worksheets("Name_of_your_second_sheet").Range("A1") 


Do While rngStartFirstList.Value <> "" 
    If rngStartFirstList.Offset(1, 0).Value < 0 Then 

    Range(rngStartFirstList, rngStartFirstList.Offset(0, 1)).Copy  

    rngStartLoadList.PasteSpecial xlPasteValues 

    Application.CutCopyMode = False 

    Set rngStartLoadList = rngStartLoadList.Offset(1, 0) 

    End If 

    Set rngStartFirstList = rngStartFirstList.Offset(1, 0) 

Loop 
End Sub 
+0

偏移量(1,0)的一半可能應該是偏移量(0,1)(或者更可能基於問題偏移量(0,2)) – YowE3K

+0

而且您應該聲明'rngStartFirstList'作爲'Range'而不是'Variant'。 (它仍然可以按原樣工作,但通常更好的做法是將變量顯式聲明爲適當的類型,而不是允許將它們設置爲Variant。)'Range(rngStartFirstList,...'應該是'Worksheets(「 Name_of_your_fist_sheet「),範圍(rngStartFirstList,...'避免代碼崩潰,如果‘Name_of_your_fist_sheet’不是活動工作表。 – YowE3K

+0

@ YowE3K感謝,還有在副本中陳述一個錯字,並在變量聲明一個壞的假設 – BrajkishorB

0

基本上我想要的是......如果值基於C> 0,我想複製到新的工作表整列10 ....不僅如此細胞

相關問題