Vba 选择具有i整数的单元格范围

Vba 选择具有i整数的单元格范围,vba,excel,Vba,Excel,我正在尝试选择一个包含I整数的单元格范围。我不需要选择整行,而是需要特定范围的单元格。下面我提供了选择整行的代码(运行良好),以及我编写的选择特定范围的代码(不运行) 行代码 With ws2 lastrow1 = .Range("A" & Rows.Count).End(xlUp).Row For i = 4 To lastrow1 If .Cells(i, "D").Interior.ColorIndex = -4142 Or .Cells(i, "D").Interior.

我正在尝试选择一个包含I整数的单元格范围。我不需要选择整行,而是需要特定范围的单元格。下面我提供了选择整行的代码(运行良好),以及我编写的选择特定范围的代码(不运行)

行代码

With ws2
lastrow1 = .Range("A" & Rows.Count).End(xlUp).Row
For i = 4 To lastrow1
    If .Cells(i, "D").Interior.ColorIndex = -4142 Or .Cells(i, "D").Interior.ColorIndex = 2 Then
        If CopyRange Is Nothing Then
        Set CopyRange = .Rows(i)
        Else
        Set CopyRange = Union(CopyRange, .Rows(i))
        End If
    End If
Next i
End With
范围代码

With ws2
lastrow1 = .Range("A" & Rows.Count).End(xlUp).Row
For i = 4 To lastrow1
    If .Cells(i, "D").Interior.ColorIndex = -4142 Or .Cells(i, "D").Interior.ColorIndex = 2 Then
        If CopyRange Is Nothing Then
        Set CopyRange = .Cells("A & i & ":F" & i)
        Else
        Set CopyRange = Union(CopyRange, .Rows(i))
        End If
    End If
Next i
End With

这里的问题是,
单元格
只接受像
单元格(行,列)
这样的行和列,因此需要对像
这样的范围使用
Range()
(“a”&i&“:F”&i)

此外,您还需要相应地调整
else
零件,因为您仍然在
Union()中使用
行(i)


这里的问题是,
单元格
只接受像
单元格(行,列)
这样的行和列,因此需要对像
这样的范围使用
Range()
(“a”&i&“:F”&i)

此外,您还需要相应地调整
else
零件,因为您仍然在
Union()中使用
行(i)


您可以使用“偏移”和“调整大小”来获取范围

Cells(i, "D").Offset(0, -3).Resize(1, 6)

您可以使用“偏移”和“调整大小”来获取范围

Cells(i, "D").Offset(0, -3).Resize(1, 6)

缺少引号-将您的一行更改为:
设置CopyRange=.Cells(“a”&i&“:F”&i)
@JohnBustos您必须使用
.Range(“a”&i&“:F”&i)
,因为
单元格
只接受像
这样的行和列。单元格(行、列)
但没有范围。伙计们,仍然存在问题,它无法运行@PericlesFaliagas“未运行”是一个无用的错误描述。你会犯什么错误?在哪里?或者发生了什么而不是你预期会发生什么?看看我的答案是否能解决这个问题如果没有,用F8一步一步地检查它,看看会发生什么(并检查您的值)。缺少引号-将您的一行更改为:
设置CopyRange=.Cells(“a”&i&“:F”&i)
@JohnBustos您必须使用
.Range(“a”&i&“:F”&i)
,因为
单元格只接受像
单元格(行、列)这样的行和列
但没有范围。伙计们,仍然存在问题,无法运行@PericlesFaliagas“未运行”是一个无用的错误描述。你会犯什么错误?在哪里?或者发生了什么而不是你预期会发生什么?看看我的答案是否能解决这个问题如果没有,用F8一步一步地检查,看看会发生什么(并检查您的值)。