2017-01-21 53 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 ....不仅如此细胞

相关问题