从excel中抽取非零值

我把这张桌子做成了一个菜单上的食物,营养价值很高。 然后,我得到了另一个表,每个项目在一行,每个项目在下面的行中消耗的数量。 然后,我使用Excel中的解算器工具来优化膳食select,同时对膳食所消耗的卡路里量以及我已经使用的营养价值进行一定的限制。

当我通过解算器工具运行单纯形algorithm时,会发生什么情况,表中消耗的数量的值会发生变化,以反映出您应该在给定约束条件下吃什么。

我想使它变得灵活,以便我可以改变约束条件并获得不同的结果,但是我想要的是显示所做select的简单方法。 目前我所拥有的是在另一个表格上的索引匹配,然后我使用一个filter来取消所有与'0'的物品的数量,但是每次运行求解器时都要这样做。

有什么办法可以拉非零,并显示这些引用的项目,而不必每次都重做filter?

这里有一个简单的例程,我用它来查看电子表格中的某些内容,并将结果发布到同一页面(轻松更改为在另一个表格上发布)。 希望这会有所帮助,或者朝正确的方向发展。 (原油但有效)

Private Sub CommandButton3_Click() 'FIND A VALUE IN THE LIST AND POST RESULTS Dim myName, myNumber, myComp 'Clear the results area With Worksheets("SheetName").Range("H2:J30").ClearContents End With x = 2 'The row to start posting results to y = 0 'This is the range to search With Worksheets("SheetName").Range("A1:D300") Set found = .Find(What:=y, LookIn:=xlValues, LookAt:=xlWhole) If Not found Is Nothing Then firstAddress = found.Address Do Set ws = Sheets("SheetName") myName = ws.Range("A" & found.Row).Value 'Value in column A myNumber = ws.Range("B" & found.Row).Value 'Value in column B myComp = ws.Range("C" & found.Row).Value 'Value in column C 'I use a MsgBox at first for testing, then comment it out when I know it's working 'MsgBox myName & " " & myNumber & " " & myComp 'Post the results to the desired area ws.Range("H" & x).Value = myName ws.Range("I" & x).Value = myNumber ws.Range("J" & x).Value = myComp x = x + 1 Set found = .FindNext(found) If found Is Nothing Then GoTo DoneFinding End If Loop While Not found Is Nothing And found.Address <> firstAddress End If DoneFinding: End With Range("A2").Select End Sub