VBA代码在Excel中,选择基于两个标准

问题描述:

我希望发生的是“PP1 & PP2缺乏列表”上按下一个按钮电池。VBA代码在Excel中,选择基于两个标准

当这个按钮被按下我想要的微距拍摄距离D5和F5的值,然后找到这两个值出现在“PP1油漆计划”单独的列行。

然后将突出列A:AF找到的行下面的所有内容复制并粘贴此回至A2。

我已经尝试了一些循环代码,找到代码,但到目前为止,我还没有运气,我希望你们中的一个辉煌的人们可以摆脱对这个问题的一些新思维。

+0

请告诉我们你已经尝试了什么,你不会有这样的答案...在这里看到一个例子:http://*.com/a/30162390/4628637 – R3uK

+0

参见[如何提问](http://*.com/help/how-to-ask)来学习如何设置问题以获得有效的答案。 –

R3uk是正确的,但你正在寻找新的想法。

为什么不结合一个公式,可以发现对与使用行号下面复制一切简单的宏您的条件匹配“PP1油漆计划”的行号。不需要循环!

将下面的公式放入与D5和F5单元相同的工作表上的空单元格中。我在宏中使用了A1。更改搜索列accoridingly(我使用$ D:$ D和$ F:$ F)。重要提示:按SHIFT + CTRL + ENTER将{}添加到此公式。

= MATCH(D5 & F5, 'PP1油漆计划' $ d:$ d & 'PP1油漆计划' $ F:$ F,0)

下一页复制这些代码,按需要进行更改。它将一个名为intFoundRow的变量设置为包含该公式的单元格(将A1更改为您的单元格引用)。然后它复制该行下面的所有内容并将其粘贴到目标表单中。我不确定这是什么,所以请更改文字。

Sub CopyShortageData() 
    intFoundRow = Sheets("PP1 & PP2 Shortage list").Range("A1").Value 
    Range(Sheets("PP1 Paint plan").Range("A" & intFoundRow & ":AF" & intFoundRow), Sheets("PP1 Paint plan").Range("A" & intFoundRow & ":AF" & intFoundRow).End(xlDown)).Copy 
    Sheets("Your destination sheet").Range("A2").PasteSpecial xlPasteAll 
End Sub 
+0

感谢戈登,我得到一个运行时错误1004在这行代码表(“PP1油漆计划”)范围(“A”&intFoundRow&“:AF”和intFoundRow)。选择 –

+0

你好,对不起,我没有测试过代码,也没有使用“select”语句,所以我更改了代码并测试了它的工作原理。 – Gordon

+0

戈登你是一个明星! 在模块中完美工作,但在单击activeX按钮时从未工作。但是,现在已经通过在按钮本身上编码来解决这个问题: Module2.CopyShortageDataPP1 无论如何非常感谢和问候。 乔 –