Как использовать синтаксис if

#vba #excel

#vba #excel

Вопрос:

 Sub test()
    LastRow_Sheet1 = Worksheets("Sheet1").UsedRange.Rows.Count
    LastRow_Sheet2 = Worksheets("Sheet2").UsedRange.Rows.Count

For x = 2 To 30

    po_number = Worksheets("Sheet1").Cells(x, 1).Value
    site_name = Worksheets("Sheet1").Cells(x, 2).Value

    For y = 2 To LastRow_Sheet2
        If po_number <> Worksheets("Sheet1").Cells(y, 1).Value Then ' And (InStr(1, Cells(y, 30), CStr(site_name)) >= 1) Then
            With Worksheets("Sheet2")
            If InStr(1, .Cells(y, 30), CStr(site_name)) >= 1 Then
                .Range(.Cells(y, 1), .Cells(y, 31)).Copy
                nextRow = Sheets("Sheet3").Cells(Sheets("Sheet3").Rows.Count, 1).End(xlUp).Row   1
                Sheets("Sheet3").Range("A" amp; nextRow).PasteSpecial
            End If
          End With
        End If
    Next
  Next
End Sub
  

Привет всем,

Вопрос 1, будут ли эти два if syntax результата одинаковыми?

 If po_number <> Worksheets("Sheet1").Cells(y, 1).Value And (InStr(1, Cells(y, 30), CStr(site_name)) >= 1) Then
            With Worksheets("Sheet2")
            .Range(.Cells(y, 1), .Cells(y, 31)).Copy
                nextRow = Sheets("Sheet3").Cells(Sheets("Sheet3").Rows.Count, 1).End(xlUp).Row   1
                Sheets("Sheet3").Range("A" amp; nextRow).PasteSpecial
            End With
    End If

If po_number <> Worksheets("Sheet1").Cells(y, 1).Value Then
         With Worksheets("Sheet2")
            If InStr(1, .Cells(y, 30), CStr(site_name)) >= 1 Then
                .Range(.Cells(y, 1), .Cells(y, 31)).Copy
                nextRow = Sheets("Sheet3").Cells(Sheets("Sheet3").Rows.Count, 1).End(xlUp).Row   1
                Sheets("Sheet3").Range("A" amp; nextRow).PasteSpecial
            End If
          End With
        End If
  

Вопрос 2, кажется, что мой исходный код будет выводить результат дважды .. кто-нибудь может помочь мне определить это?

Большое спасибо..

Комментарии:

1. Можете ли вы предоставить некоторые примеры данных?

2. @a-burge что вы имеете в виду под данными?