Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA目标搜索多行_Excel_Vba - Fatal编程技术网

Excel VBA目标搜索多行

Excel VBA目标搜索多行,excel,vba,Excel,Vba,这应该很简单,我就是不知道该怎么办 我有三个专栏 A、B、C 如果a中有数据,我想在B和C上运行目标搜索 范围(“B3”)。GoalSeek目标:=0,ChangingCell:=范围(“C3”) 我想要类似的东西: If CellA>0: Range("D1").GoalSeek Goal:=0, ChangingCell:=Range("C1") 如果有什么不同的话,这可能值7000行左右试试这个: Dim rCell As Range For Each rCell

这应该很简单,我就是不知道该怎么办

我有三个专栏

A、B、C 如果a中有数据,我想在B和C上运行目标搜索

范围(“B3”)。GoalSeek目标:=0,ChangingCell:=范围(“C3”)

我想要类似的东西:

  If CellA>0:
     Range("D1").GoalSeek Goal:=0, ChangingCell:=Range("C1")
如果有什么不同的话,这可能值7000行左右

试试这个:

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
Dim rCell作为范围
对于ActiveSheet.UsedRange.Resize(,1)中的每个rCell
如果rCell.Value为“”,则
rCell.Offset(,3)。GoalSeek目标:=0,更改单元格:=rCell.Offset(,2)
如果结束
下一个rCell

此代码示例基于您上面的最后一条评论。它会将C列中的单元格更改为D列公式中的0。

问题是什么?是否“确定excel单元格中是否包含数据”?如果是这样,请更改标题。如果我不清楚,不抱歉。基本上,如果单元格A1有数据,则目标搜索D1和C1。这将持续到A2、D2、C2。。。。到A5000、D5000、C5000等…@Mitch Wheat如果我不清楚,不抱歉。基本上,如果单元格A1有数据,则目标搜索D1和C1。这将持续到A2、D2、C2。。。。对于A5000、D5000、C5000等……在您的评论中,您会说A1是否包含数据。但在你的代码中,你说的是A1是否大于0。如果后者为真,则使用
如果rCell>0,则使用