#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 что вы имеете в виду под данными?