从工作表中的不同单元格中选择数据

时间:2019-09-17 15:26:48

标签: excel vba excel-formula

我目前正在处理仓库数据表,并希望从中获取信息。我需要有关公式或VBA代码的帮助。

           A          B              C
Row 1 - product - batch number - expiry date

这些是工作表中多个中的3列,但是重点是它们。我正在尝试查找公式或VBA代码以允许我执行以下操作:

“蛋糕”一词用作产品参考。

如果“产品”列中的某个单元格的值为“ cake”,请从“失效日期”列返回该单元格的值,该列与找到的初始单元格在同一行。

重复此过程,但跳过先前找到的单元格。

当前,我尝试了以下公式:

=IF(A:A="Cake",C1,"")

这是我开始的目的,之后没有任何线索。无论我在Google中搜索什么内容,都无法根据自己的需要进行调整。我也尝试过Vlookup。

在我看来,我似乎需要一个VBA代码,该代码可以循环执行并自动为我返回值。

我知道我的尝试是可悲的,但是我已经在线搜索了2天,没有任何进展。你能建议点什么吗?谢谢

我希望从所有输入表中得到一个单独的表,以收集产品列表,其批号和与之相关的到期日期,以应用条件格式,如果一批将要过期则发出警告

1 个答案:

答案 0 :(得分:1)

这在VBA中相对容易做到:

Sub returnExpirydates()

Dim strInput As String
Dim lngCount As Long, lngRow As Long
Dim wsInput As Worksheet, wsOutput As Worksheet

strInput = InputBox("Please enter the desired product.")

lngCount = 2
lngRow = 2

Set wsInput = Sheets("YourInputSheetName")
Set wsOutput = Sheets("YourOutputSheetName")

wsOutput.Cells.Clear
wsOutput.Rows(1).Value = wsInput.Rows(1).Value

Do While wsInput.Cells(lngCount, 1).Value <> ""
    If Cells(lngCount, 1).Value = strInput Then
        wsOutput.Rows(lngRow).Value = wsInput.Rows(lngCount).Value
        lngRow = lngRow + 1
    End If
    lngCount = lngCount + 1
Loop

End Sub

这可能需要一些调整才能适合您的文件,如果您有后续问题,请告诉我。