[英]How find a Range based on one criteria then a Cell within that Range based on another criteria
[英]Find cells within a range if one cell equals a criteria copy its value to another column
我真的很難讓它為我工作。 為了幫助解釋我需要做什么,我在下面制作了一個(希望)非常簡單的示例...
我想做的是:
A:A
找到J Bloggs
(請注意,可以有多個條目,而我需要所有這些條目) J Blogs
的訂單時,請復制其訂單日期B1
,請求del。 日期C1
和實際del。 日期D1
G1:J4
注意:客戶列表可能很長,有些客戶可能會單獨下訂單。 我需要生成所有這些訂單的列表(無需檢查日期是否在過去等)。
每次運行查詢時,例如這次對H Simpson
,表H Simpson
G1:J4
只會顯示H Simpson
的詳細信息。
+---------------+----------------+---------------------+------------------+
| Customer | Order Date | Requested Delivery | Actual Delivery |
+---------------+----------------+---------------------+------------------+
| J Bloggs | 01/01/2013 | 02/01/2013 | 02/01/2013 |
| H Simpson | 05/01/2013 | 08/01/2013 | 09/01/2013 |
| A Name | 10/01/2013 | 10/01/2013 | 10/01/2013 |
| J Bloggs | 15/01/2013 | 22/01/2013 | 22/01/2013 |
+---------------+----------------+---------------------+------------------+
至少有三種不同的方法:
此處說明了如何使用VLOOKUP()獲得多個結果:
你的幸運日! 我有空閑的空閑時間,並為您編寫了此代碼。
它將要求您提供Name
-您只需選擇名稱不想要為其生成數據的單元格
它將在G:J
列中創建一個表格 ,並在A:D
列中保留匹配結果
Sub Findining()
Dim r As Range, i As Long, j As Long, rng As Range
Range("G:J").ClearContents
For i = 1 To 4
Cells(1, i + 6) = Cells(1, i)
Next i
Set r = Application.InputBox("Select Name", Type:=8)
If r.Columns.Count > 1 Or r.Rows.Count > 1 Then
Do Until (r.Columns.Count = 1 And r.Rows.Count = 1)
MsgBox "You can only select 1 name"
Set r = Application.InputBox("Select Name", Type:=8)
Loop
End If
For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
Set rng = Range("A" & i)
If StrComp(r, rng, vbTextCompare) = 0 Then
For j = 0 To 3
Cells(Cells(Rows.Count, rng.Offset(0, 6 + j).Column).End(xlUp).Row + 1, rng.Offset(0, 6 + j).Column).Value = rng.Offset(0, j).Value
Next j
End If
Set rng = Nothing
Next i
Columns.AutoFit
End Sub
之前:
后:
我每次都與Vasim一起去,例如:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.