Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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
Vba 如何选择包含大于指定数值的值的范围?_Vba_Range - Fatal编程技术网

Vba 如何选择包含大于指定数值的值的范围?

Vba 如何选择包含大于指定数值的值的范围?,vba,range,Vba,Range,我有一些vba代码,我有麻烦 在B1:B32范围内,只有当A列的值>5时,该值才等于A列,否则我将其设置为零。此部分已在excel中设置 然后,我只想选择B列中值不等于0的单元格。 当我尝试运行下面的代码来选择所需的单元格时,我收到消息“Application defined or object defined error” 我对VBA相当陌生,所以这个问题对你们中的一些人来说可能非常基本 代码如下: Sub rangeselect() Range("B1").Select Di

我有一些vba代码,我有麻烦

在B1:B32范围内,只有当A列的值>5时,该值才等于A列,否则我将其设置为零。此部分已在excel中设置

然后,我只想选择B列中值不等于0的单元格。 当我尝试运行下面的代码来选择所需的单元格时,我收到消息“Application defined or object defined error” 我对VBA相当陌生,所以这个问题对你们中的一些人来说可能非常基本

代码如下:

Sub rangeselect()
    Range("B1").Select
    Dim i As integer

    For i = 1 To 32
        If ActiveSheet.Cells(i, 2).Value = 0 Then
            Range(Cells(1, 2), Cells(i - 1, 2)).Select
        End If
    Next
End Sub
感谢您的建议,
谢谢

在所有值都为零的情况下仍然需要一些错误处理,但首先应该这样做:

Sub rangeselect()
  Dim my_range As Range
  For Each cell In Range("B1:B32")
    If cell.Value <> 0 Then
        If my_range Is Nothing Then
            Set my_range = cell
        Else
            Set my_range = Union(my_range, cell)
        End If
    End If
  Next
  my_range.Select
End Sub
子范围选择()
将我的_范围变暗为范围
对于范围内的每个单元格(“B1:B32”)
如果单元格.Value为0,则
如果我的_范围为零,那么
设置我的_范围=单元格
其他的
设置我的范围=联合(我的范围,单元格)
如果结束
如果结束
下一个
my_range.Select
端接头

Hi,选择这些单元格的目的是什么?是否将它们复制到其他地方?是的,它们将被复制到另一个文件中以加载到软件包中。但我首先需要选择它们。非零单元格将处于连续范围内,因此不会有任何值为零的孤立单元格。非常感谢Michael,这是可行的。幸运的是,对于我正在处理的数据,不可能所有值都为零,所以我不必担心这种情况。