私は検索しましたが、私の複製を見つける場所の隣の列に指定した値を印刷する方法がわかりません。私が以前から持っていたのは、異なる範囲を最初に指定した後、シートXのシートYに重複があるかどうかを調べるコードです。シートLeはこの週情報であり、シートは最後の週情報です。別のワークシートで重複をチェックしてから値をプリントします
IF指定された範囲に重複があります。私の送付状に印刷したいと思います。
私が探している条件は、シート(Be)のシート(B)の列Bにある同じ値を見つけることができる場合、列Fのテキストが変更されているかどうかを確認することです。そうであれば、それはシート(Le)=配達の列Aに印刷される。そうでなければ届かない。
次に、列Mの日付が同じかどうかをチェックします。そうでなければ、シート(Le)上の列AにReplannedを印刷する。
短く シート上のセルのIF値、シート(Le)=シート内の値(B)、シート(Be) シート上の列Aの値Le = "納品済み"または "
をカラムMのセルの値が、シートが列Aに、値(BE)列Mのセルの値、シート(LE)<>場合、シート(LE)は=
"再計画" 場合
これは私のデータは、この
Col B Col F Col M
PZ2408 X30 2017-02-13
PZ2345 X30 2017-02-23
PZ2463 X30 2017-02-25
PZ2513 X13 2017-02-05
PZ2533 X13 2017-02-10
PZ2561 X60 2017-02-17
のように見える(BE)私のデータシートについて シート(ル)
Col B Col F Col M
PZ2408 X13 2017-02-13
PZ2345 X30 2017-02-23
PZ2463 X45 2017-02-25
PZ2513 X13 2017-02-10
PZ2533 X70 2017-02-05
PZ2561 X60 2017-02-20
、どのように見えるかです
コードが動作し、私の脳はしないん、私はそれは例えば表示したいと思い
シート(ル)
col A Col B Col F Col M
Delivered PZ2408 X13 2017-02-13
Not Delivered PZ2345 X30 2017-02-23
Delivered PZ2463 X45 2017-02-25
replanned PZ2513 X13 2017-02-10
Delivered PZ2533 X70 2017-02-05
replanned PZ2561 X60 2017-02-20
Bascilly私、配信配信および再計画はない文をそのコースをした後、うまくいかない。
私の一日を節約できますか?ここ
Sub checkASMT()
Dim rng1 As Range
Dim rng2 As Range
Dim lastRowSource As Long
Dim lastRowTarget As Long
Dim row As Long
Dim ASMT As String
'Looping trough Range
With ThisWorkbook.Worksheets("Le")
lastRowTarget = .Range("B" & .Rows.Count).End(xlUp).row
For i = 29 To lastRowTarget
ASMT = .Range("b" & i).value
'Define range and see if we can find duplicates
With ThisWorkbook.Worksheets("Be")
lastRowSource = .Range("B" & .Rows.Count).End(xlUp).row
Set rng1 = .Range("B3", "B" & lastRowSource)
row = findValueInRangeReturnRow(rng1, ASMT)
'Check FAX
If compareAEO(i, row, "FAX") = True Then
'Debug.Print compareASMT(i, row, "FAX")
Worksheets("Le").Cells(i, ASMT).value = "Not Delivered"
Else
.Worksheets("Le").Cells(i, ASMT).value = "delivered"
'Check if dax are correct
If compareAEO(i, row, "DAX") = False Then
.Worksheets("Le").ASMT.Offset(0, 1).value = "Replan"
End If
End With
Next i
End With
End Sub
は私の最初の機能
Function findValueInRangeReturnRow(rng As Range, value As Variant) As Long
Set c = rng.Find(value, LookIn:=xlValues)
If Not c Is Nothing Then
findValueInRangeReturnRow = c.row
End If
End Function
重複が指定した範囲内で発見されたかどうかをチェックする私の第二の機能です。
Function compareAEO(rad1 As Variant, rad2 As Variant, typeCOMPARE As String) As Boolean
Dim col1 As String
Dim col2 As String
Select Case typeCOMPARE
Case "FAX"
col1 = "F"
col2 = "F"
Case "DAX"
col1 = "M"
col2 = "M"
End Select
If ThisWorkbook.Worksheets("Le").Range(col1 & rad1).value = ThisWorkbook.Worksheets("Be").Range(col2 & rad2).value Then
compareAEO = True
Else
compareAEO = False
End If
End Function
あなたのデータ「構造」と希望の出力を示すのに役立ちます – user3598756
あなたのコメントに関して私の投稿を編集しました!ありがとう! – DL1
「良い」マクロを実行した後で、データの最終状態を追加することができます。 – user3598756