2012-09-13 73 views
0

這應該是簡單的我不能環繞我的頭它VBA變量求解多行

我有3列

ABC 我想運行一個目標尋求B和C,如果A有在它的數據

範圍( 「B3」)GoalSeek目標:= 0,ChangingCell:=範圍( 「C」)

我想類似這樣的東西:

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

這可能是一些7000行值得,如果有什麼差別

+0

有什麼問題?是「確定一個Excel單元格是否有數據」?如果是這樣,請更改標題。 –

+0

如果我不清楚,不要抱歉。基本上如果單元格A1有數據,則目標尋找D1和C1。這將繼續通過A2,D2,C2 ....到A5000,D5000,C5000等...... –

+0

@Mitch小麥沒有抱歉,如果我不清楚。基本上如果單元格A1有數據,則目標尋找D1和C1。這將繼續通過A2,D2,C2 ....到A5000,D5000,C5000等...... –

回答

2

試試這個:

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 

此代碼示例是基於你的最後一個註釋以上。它將更改C列中的單元格,使D列中的公式中的值爲0。

+0

在你的評論中,你會說A1是否有數據。但是在你的代碼中,你說A1是否大於0.如果後者是真的,那麼使用'If rCell> 0 Then' – Reafidy