目前的代码如下:
With Sheets(sheetChk)
a = .Range(chkCell, .Range(Left(chkCell, 1) & Rows.Count).End(xlUp)).Value
End With
sheetChk被定义为所需的纸张索引。 chkCell被定义为所需的"第一个单元"在范围内。
我正在尝试为 a 指定范围。问题是上面的代码完全抓住了列中的最后一个单元格。相反,我想在特定行结束,因为在需要忽略的所需范围之后,我在同一列中有其他数据。我怎么能做到这一点?
答案 0 :(得分:2)
首先要指定一个范围,首先需要Set
。
示例:Set a = Range("A1")
我看到的另一个问题是你最后放了一个.value
。这对范围没有意义。
如果要指定特定行,则需要在代码中包含该行,而不是使用end(xlUp)
。
示例如果是第50行:
With Sheets(sheetChk)
Set a = .Range(chkCell, .Range(Left(chkCell, 1) & 50).End(xlUp))
End With
您目前使用的是查找正在使用的底行,这听起来并不像您想要的那样。如果你想转向另一个方向(即从起始单元格向下直到有一个空单元格),你可以使用这段代码:
With Sheets(sheetChk)
Set a = .Range(chkCell, .Range(Left(chkCell, 1) & chkCell.Row).End(xlDown))
End With
根据您的代码,您可能会在任何单元格chkCell
中放置一个地址。如果您在该单元格中有行,并假设您从未超过列z,那么您可以使用此代码来查找行:
With Sheets(sheetChk)
Set a = .Range(chkCell, .Range(Left(chkCell, 1) & Right(chkCell,Len(chkCell)-1))
End With
如果这不起作用,您需要找出一些方法来确定要使用的行。希望有所帮助。
答案 1 :(得分:0)
dim rng as range
set rng = thisworkbook.sheets("sheet1").range("a1:a666")