2012-09-13 4 views
0

Cela devrait être simple, je ne peux pas envelopper la tête autourVBA Valeur cible plusieurs lignes

J'ai 3 colonnes

ABC Je veux courir un but sur rechercher B et C si A a les données qu'il contient

Range ("B3") GoalSeek Objectif:. = 0, ChangingCell: = Range ("C3")

Je veux quelque chose de similaire à ceci:

If CellA>0: 
    Range("D1").GoalSeek Goal:=0, ChangingCell:=Range("C1") 

Cela pourrait être quelque 7000 lignes en valeur si cela fait une différence

+0

Quelle est la question? est-il "déterminer si une cellule Excel a des données"? Si oui, les pls changent de titre. –

+0

Non désolé si je n'étais pas clair. Fondamentalement, si la cellule A1 a des données, alors l'objectif recherche D1 et C1. Cela continuerait à travers A2, D2, C2 .... à A5000, D5000, C5000 etc ... –

+0

@Mitch Wheat Pas de désolé si je n'étais pas clair. Fondamentalement, si la cellule A1 a des données, alors l'objectif recherche D1 et C1. Cela se poursuivra à travers A2, D2, C2 .... A5000, D5000, C5000 etc ... –

Répondre

2

Essayez ceci:

Dim rCell As Range 

For Each rCell In ActiveSheet.UsedRange.Resize(, 1) 
    If rCell.Value <> "" Then 
     rCell.Offset(, 3).GoalSeek Goal:=0, ChangingCell:=rCell.Offset(, 2) 
    End If 
Next rCell 

Cet exemple de code est basé sur votre dernier commentaire ci-dessus. Il va changer la cellule dans la colonne C pour donner 0 dans la formule dans la colonne D.

+0

Dans vos commentaires, vous dites si A1 contient des données. Mais dans votre code, vous dites si A1 est supérieur à 0. Si ce dernier est vrai, utilisez 'Si rCell> 0 Then' – Reafidy

Questions connexes