Excel VBA fonction offset
J'ai un fichier Excel avec les informations dans la colonne A et la colonne B. Depuis ces colonnes peut varier dans le nombre de lignes, je voudrais utiliser la fonction décalage pour que je puisse imprimer la formule en même temps comme un tableau plutôt que de boucler sur la formule par cellule (le jeu de données contient près de 1 million de points de données).
Mon code est effectivement la façon dont je veux être je ne peux pas comprendre comment imprimer le code dans la Gamme(D1:D5). Le résultat est maintenant imprimé dans la Gamme(D1:H1). Toute personne familière comment utiliser ce décalage dans une déclaration?
Sub checkOffset()
Dim example As Range
Dim sht As Worksheet
Dim LastRow As Long
Set sht = ThisWorkbook.Worksheets("Sheet1")
LastRow = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row
Set example = Range("A1:A1")
For i = 1 To LastRow
example.Offset(0, i + 2).Formula = "=SUM(A" & i & ":B" & i & ")"
Next i
End Sub
Vous devez vous connecter pour publier un commentaire.
À l'aide de la
Offset(Row, Column)
, vous voulez décalage avec l'augmentation de la ligne (i -1
), et 3 colonnes vers la droite (à partir de la colonne "A" de la colonne "D")Essayer le code modifié ci-dessous:
Une manière de reproduire la formule en une seule étape, sans boucle, à l'ensemble de la gamme, est d'utiliser la notation L1C1:
Edit: le Code modifié pour qualifier correctement la feuille de calcul références
Vous n'avez pas besoin d'utiliser VBA pour cela. Simplement tapez =somme(A1:B1) dans la cellule D1, puis de le remplir.
Si vous allez à l'utilisation de VBA de toute façon, utilisez ceci:
La façon
offset
œuvres est avec un décalage de lignes, de colonnes de décalage. La colonne doit toujours être fixée à 3 vers la droite.