/ / Защо моят следващ цикъл не работи правилно? - excel, vba, excel-vba

Защо моята следваща линия не работи правилно? - excel, vba, excel-vba

Аз съм нов за този сайт, както и за VBA. Работя по проект и се сблъсках в стена. Надявам се някой да ми помогне. Това, което се опитвам да направя, е да създам цикъл, който ще мине през посочения лист и ще изтегля данни, които отговарят на критериите ми, копирайте и го поставете на друг лист, където ще го изчисля и след това ще покажа резултатите от изчисленията в друг лист.

така че, имам следния код (excel VBA), който еда предположим, да преминем през листа и да извадя всички записи, които съответстват на текущата седмица (аз също се опитвам да добавя текущата година, няма късмет досега) и да залепя всички съвпадащи записи в листа с име Archieve:

Sub DataByWeek()

Dim cw As Integer " current week
Dim cy As Integer " current year
Dim lr As Long "last row of data
Dim i As Long " row counter

"Get week number of today"s date
cw = Format(Date, "ww")
cy = Format(Date, "yyyy")

ActiveWorkbook.Worksheets("Daily DB").Activate

" Find last row of data plus one down
lr = Sheet7.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row

For i = 2 To lr
If Cells(i, 6) = cw Then
Range(Cells(i, 1), Cells(i, 5)).Copy
ActiveWorkbook.Worksheets("Archieve").Activate
Range("A2").End(xlUp).Offset(1, 0).PasteSpecial xlPasteFormulasAndNumberFormats
End If
Next i

End Sub

Този код прави всичко, което искам, освенвърнете се отвъд първата съвпадаща итерация. Кодът преминава през всички данни на листа с име Daily DB, но връща само първия съвпадащ запис. Опитах да търся онлайн (много сайтове, включително този), за да видя дали съм пропуснал нещо или съм направил нещо нередно, но не мога да намеря къде се обърках.

Бих искал също така да знам как мога да добавя втори критерий към условието на оператора If. Бих искал да добавя годината, така че състоянието да чете нещо подобно

If Cells(i, 6 & 7) = cw & cy Then
...

Където i, 6 съдържа номера на седмицата и i, 7 съдържа годината. С други думи, бих искал да "кажа" да намеря всички записи, които съдържат x седмица на x година.

Съжалявам, ако това беше твърде дълго и благодаря предварително за всякаква помощ.

Отговори:

0 за отговор № 1

Ако добавите ActiveWorkbook.Worksheets("Daily DB").Activate преди End If изявление, вярвам, че ще оправи проблема ви. Не съм сигурен обаче, че това е най-ефективният начин.