2010-11-02 16 views
0

Dans le code suivant, la plage (C16: I16) copie uniquement cette ligne de données. J'en ai besoin pour passer à la ligne suivante, car ce sera le lendemain. Et continuez à le faire jusqu'à la fin de chaque mois. Que devrais-je ajouter pour accomplir ceci? Merci.Passage à la ligne de données suivante dans une plage

Sub test() 

Workbooks("MAY10-Key Indicator Daily Reportcopy.xls").Sheets("Input").Activate 
Set c = Range("B15:B45") 
For Each cell In c 
    If cell.Value = Range("I5").Value Then 
     Workbooks("McKinney Daily Census Template OCT 10 (11).xls").Sheets("McKinney").Range("C16:I16").Copy 
     cell.Offset(0, 37).PasteSpecial 
End If 
    Next 
Application.CutCopyMode = False 
End Sub 
+1

Il est difficile de comprendre ce que vous essayez de faire, mais si vous voulez faire quelque chose de différent en fonction du jour du mois, vous devez faire référence à la date actuelle du système. – Patrick

+0

@Patrick. Il y a deux classeurs. WB1 a dans la colonne A les dates pour le mois de novembre. WB2 a également des dates pour le mois de novembre mais a des données en C16: I45 (couvre tous les jours au mois de novembre). Range (I5) est une cellule avec = today() ... Donc aujourd'hui est 11/02/10 et la ligne de données est C16: I16. Demain sera le 11/03/10 et j'ai besoin de Range (C16: I16) pour descendre à (C17: I17), et continuer tout au long du mois. J'espère que ça aide. – Edmond

Répondre

0

Ajouter un .Offset(i-1, 0) après la plage où i est le jour #. En plus d'obtenir le nombre de lignes déjà remplis, vers le bas d'une utilisation de référence de départ

Public Function CountRows(ByRef r As Range) As Integer 
    CountRows = r.Worksheet.Range(r, r.End(xlDown)).Rows.Count 
End Function 

Vous pouvez également utiliser la fonction <range>.Resize(num_rows, num_cols) pour créer des gammes de plusieurs cellules (de taille variable).

+0

Où ajouterais-je cette fonction publique dans le code ci-dessus? – Edmond

+0

Dans tout module pour le rendre accessible à partir de toutes les feuilles de calcul. – ja72

+0

@ jalexiou. J'ai ajouté le .offset et la fonction publique, mais sur ma WB2, à la date du 11/01/10, la plage pour les données est C15: I15. J'ai besoin du 11/02/10 pour que la gamme descende automatiquement à C16: I16, mais au lieu de copier et coller C15: I15 – Edmond