rt!单元格表示方法的区别,居然有个细节没人给我讲清楚,我说我测试程序怎么老出错呢?代码如下:
Sub test()
Dim c, k%, rng As Range
For Each rng In Sheets("总表").Range("a3:a" & Cells(Rows.Count, 1).End(xlUp).Row)
'For Each rng In Range(Sheets("总表").[a3], Sheets("总表").Cells(Rows.Count, 1).End(xlUp))
Set c = rng.Find("张三")
If Not c Is Nothing Then
Sheets("总表").[b3:d3].Offset(c.Row - 3).Copy Sheets("张三").[b5].Offset(k)
k = k + 1
End If
Next
End Sub
这样表达
Sheets("总表").Range("a3:a" & Cells(Rows.Count, 1).End(xlUp).Row)是对的,
Range是Sheets("总表")的从属对象。
这样表达
Range(Sheets("总表").[a3], Sheets("总表").Cells(Rows.Count, 1).End(xlUp)),才是对的。
如果这样表达
Sheets("总表").Range([a3], Cells(Rows.Count, 1).End(xlUp)),若当前工作表不是"总表“就是错的,
表明Range不是Sheets("总表")的从属对象。
Sub test()
Dim c, k%, rng As Range
For Each rng In Sheets("总表").Range("a3:a" & Cells(Rows.Count, 1).End(xlUp).Row)
'For Each rng In Range(Sheets("总表").[a3], Sheets("总表").Cells(Rows.Count, 1).End(xlUp))
Set c = rng.Find("张三")
If Not c Is Nothing Then
Sheets("总表").[b3:d3].Offset(c.Row - 3).Copy Sheets("张三").[b5].Offset(k)
k = k + 1
End If
Next
End Sub
这样表达
Sheets("总表").Range("a3:a" & Cells(Rows.Count, 1).End(xlUp).Row)是对的,
Range是Sheets("总表")的从属对象。
这样表达
Range(Sheets("总表").[a3], Sheets("总表").Cells(Rows.Count, 1).End(xlUp)),才是对的。
如果这样表达
Sheets("总表").Range([a3], Cells(Rows.Count, 1).End(xlUp)),若当前工作表不是"总表“就是错的,
表明Range不是Sheets("总表")的从属对象。