2012-07-27 48 views
0

我有一个工作表上列出的产品列表,您可以选择每个产品的数量,但不是每个产品都有一个值。在一个单独的工作表中,我希望它只能拉动选定量的产品。请指教。如果一个单元格不为空返回不同选项卡中'a'列中的值

第一个工作表:

A  B 

a  3 

c  45 

d 

e 

f  10 

期望中的第二个工作表:

A  B 

b  3 

c  45 

f  10 
+2

自动筛选器然后复制数据? – 2012-07-27 12:43:23

+0

查看http://www.cpearson.com/excel/NoBlanks.aspx,了解不使用VBA的解决方案,特别是以'= IFERROR'开头的解决方案。你必须稍微改变你的情况 - 我现在没有时间去做,但如果其他答案不符合你的要求,我可以在以后帮忙。 – 2012-07-28 04:13:43

回答

2

你可以得到你想要一个简单的VBA子程序什么:

Sub notNull() 
    Dim count As Integer 
    count = Application.WorksheetFunction.CountA(Range("A:A")) 
    Dim i As Integer 
    i = 1 
    Dim rowCount As Integer 
    rowCount = 1 
    Do While i <= count 
     If (Range("B" & i) <> "") Then 
      Worksheets("Sheet2").Range("A" & rowCount) = Range("A" & i) 
      Worksheets("Sheet2").Range("B" & rowCount) = Range("B" & i) 
      rowCount = rowCount + 1 
     End If 
     i = i + 1 
    Loop 
End Sub 

它的作用是不言而喻通过列A中所有具有数据的行,检查列B中的关联值是否等于“”,如果是它不是,它将两个值复制到另一个表单上。希望这可以帮助!

+0

像梦一样工作!谢谢! – user1557628 2012-07-27 15:28:17

+0

好听!仅供参考,当提问者批准答案时,他可以点击该答案旁边的复选标记以正式接受答案。这将不胜感激:) – jrad 2012-07-27 15:35:31

1

如果您/您的最终用户允许使用宏,您可以使用VBA子例程来实现此目的。在下面的例子中,我假设你没有重命名工作表,它们分别被称为“Sheet1”和“Sheet2” - 如果你重命名了它们,你将不得不在代码中改变它们以匹配。

1)显示的显影剂工具栏:

[http://www.traineetrader.com/excel-quick-tips-howto-enable-the-developer-toolbar-in-excel-20102011/] [ 1]

2)开发人员工具栏中单击插入,然后添加一个按钮(哪里并不重要)

3)右键单击按钮和“指定宏”,然后点击“新建”

4)这段代码应该这样做:

Sub Button1_Click() 

Dim row As Integer 

row = 1 
newrow = 1 

Do Until Worksheets("Sheet1").Cells(row, 1).Value = "" 

    If Worksheets("Sheet1").Cells(row, 2).Value <> "" Then 

    Worksheets("Sheet2").Cells(newrow, 1).Value = Worksheets("Sheet1").Cells(row, 1).Value 
    Worksheets("Sheet2").Cells(newrow, 2).Value = Worksheets("Sheet1").Cells(row, 2).Value 

    newrow = newrow + 1 

    End If 

row = row + 1 

Loop 

End Sub 

任何问题 - 让我知道!

+0

我们有惊人的类似的方法! +1拥有我的方法。 – jrad 2012-07-27 13:51:23

+0

谢谢拉德克利夫先生!您的解决方案看起来是最公平的最佳选择。不幸的是,我没有足够的声望来回报+1! – Dave 2012-07-27 13:58:35

+0

哈哈,如果你要取出那些空行,我们的子程序几乎是相同的。无论哪种方式,我欣赏补充! – jrad 2012-07-27 14:02:10

相关问题