我有一个工作表上列出的产品列表,您可以选择每个产品的数量,但不是每个产品都有一个值。在一个单独的工作表中,我希望它只能拉动选定量的产品。请指教。如果一个单元格不为空返回不同选项卡中'a'列中的值
第一个工作表:
A B
a 3
c 45
d
e
f 10
期望中的第二个工作表:
A B
b 3
c 45
f 10
我有一个工作表上列出的产品列表,您可以选择每个产品的数量,但不是每个产品都有一个值。在一个单独的工作表中,我希望它只能拉动选定量的产品。请指教。如果一个单元格不为空返回不同选项卡中'a'列中的值
第一个工作表:
A B
a 3
c 45
d
e
f 10
期望中的第二个工作表:
A B
b 3
c 45
f 10
你可以得到你想要一个简单的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中的关联值是否等于“”,如果是它不是,它将两个值复制到另一个表单上。希望这可以帮助!
像梦一样工作!谢谢! – user1557628 2012-07-27 15:28:17
好听!仅供参考,当提问者批准答案时,他可以点击该答案旁边的复选标记以正式接受答案。这将不胜感激:) – jrad 2012-07-27 15:35:31
如果您/您的最终用户允许使用宏,您可以使用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
任何问题 - 让我知道!
自动筛选器然后复制数据? – 2012-07-27 12:43:23
查看http://www.cpearson.com/excel/NoBlanks.aspx,了解不使用VBA的解决方案,特别是以'= IFERROR'开头的解决方案。你必须稍微改变你的情况 - 我现在没有时间去做,但如果其他答案不符合你的要求,我可以在以后帮忙。 – 2012-07-28 04:13:43