vba之中end(xlup)为何意,请高手给解析一下,还有RC[-1],R[-1]C[-1]是指的单元格吗?若用A1方式为多少?

2025-06-27 04:11:00
推荐回答(2个)
回答1:

简单的举个例子来给你解释
比如:Range("B10").End(xlUp)
表示的就是在B列从第10行(不包含第10行)向上查找到的第一个有数据的单元格.
RC[-1],R[-1]C[-1]都是R1C1的单元格引用格式
R1C1引用样式,在R1C1引用样式中,行标和列标均为数字。
该引用样式对单元格的绝对引用为“R+行标+C+列标”,其中“R”代表行,“C”代表列
如:R2C3表示位于第2行、第3列的单元格
R1C1引用样式有绝对有用和相对引用之分

如当前单元格为D5:
R[-1]C 对当前单元格所在列中的上一行单元格的相对引用,即D4单元格。
R[5]C[2] 对当前单元格下面第5行、右面第2列的单元格的相对引用,即F10单元格。
R5C2 对当前工作表的第5行、第2列的单元格的绝对引用,相当于$B$5。
R[-1] 对当前单元格上面一行区域的相对引用,相当于4:4。
R 对当前行的绝对引用,相当于$5:$5

RC[-1] 对当前单元格的行不变,列向左移动一列的单元格,,那么RC[-1]表示的就是C5单元格
R[-1]C[-1] 对当前单元格的行向上移动一行,列向左移动一列的单元格,,那么R[-1]C[-1]表示的就是C4单元格

回答2:

同意楼上,不过Range("B10").End(xlUp)是以B10为起点向上定位到最后一格,也就是B1,以下可以有助于理解:
选择任何行的最后一个单元格 ActiveCell.End(xlright).Select
选择任何列的最后单元格 ActiveCell.End(xldown).Select
选择任何行的第一个单元格 ActiveCell.End(xleft).Select
选择任何列的第一个单元格 ActiveCell.End(xlup).Select