小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

關(guān)于UsedRange屬性,你想要的都在這里

 VBA說(shuō) 2020-04-07

UsedRange屬性是我們?cè)赩BA編程中經(jīng)常用到的一個(gè)極為重要的屬性,下面介紹UsedRange屬性。

  如果您想知道當(dāng)前工作表中所有已使用的單元格區(qū)域的大小,或者您想引用當(dāng)前工作表中已使用的區(qū)域,那么您可能就要想到UsedRange屬性了。

UsedRange屬性應(yīng)用于Worksheet對(duì)象,返回指定工作表中已使用區(qū)域的Range對(duì)象,即返回工作表中已使用的單元格區(qū)域。因此,該屬性也可以用于選取單元格區(qū)域。

下面用一個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明UsedRange屬性的功能。

如下圖1所示的工作表:

圖1:一個(gè)帶有數(shù)據(jù)的工作表

然后,在VBE編輯器中輸入如下代碼:

Sub Sample01()

 Worksheets("Sheet1").UsedRange.Select

End Sub

代碼運(yùn)行后,上面的工作表顯示如下圖2所示:

圖2:代碼運(yùn)行后的工作表

即在指定工作表中(本例為工作表Sheet1)已使用范圍被全部選中??梢钥闯?,UsedRange屬性返回工作表中所有已使用范圍的單元格區(qū)域,而不管該區(qū)域數(shù)據(jù)間是否有空行或空格。

特別注意:UsedRange屬性返回工作表中所有已使用范圍的單元格區(qū)域是指:?jiǎn)卧裰杏袛?shù)值、公式、單元格格式化設(shè)置(例如:?jiǎn)卧褡煮w設(shè)置、邊框設(shè)置等等)

因?yàn)閷傩評(píng)sedrange包含著帶格式的、空白的單元格,所以只要有這樣的單元格,就會(huì)被統(tǒng)計(jì)上,因此,手動(dòng)清除數(shù)據(jù)后(清除文字、背景色、合并單元格),還會(huì)有多出的行,只有徹底刪除之后才會(huì)正確統(tǒng)計(jì)。徹底清除語(yǔ)句:cells.clear。

?UsedRange屬性的一些常見(jiàn)用法:

妙用UsedRange對(duì)象可以獲得工作表的很多信息: 

(1)已用單元格區(qū)域的第一行行序數(shù):UsedRange.Row

(2)已用單元格區(qū)域的占用的行數(shù):UsedRange.Rows.Count 

(3)已用單元格區(qū)域的最后一行的列序數(shù): UsedRange .Row+ UsedRange. Rows.Count-1 (重要)

(4)已用單元格區(qū)域的第一列列序數(shù):UsedRange.Column 

(5)已用單元格區(qū)域的占用的列數(shù):UsedRange.Columns.Count  已用單元格區(qū)域的最后一列的列序數(shù):UsedRange.Column+UsedRange.Columns.Count-1,UsedRange.Areas.Count>1除外(Areas(index)也返回的是Range對(duì)象) 

(6)已用單元格區(qū)域的占用的總單元格數(shù):UsedRange.Cells.Count或 Me.UsedRange.Count,返回的只是“行數(shù)×列數(shù)”,所以無(wú)論內(nèi)部有無(wú)合并單元格,此值不受影響。 

(7)語(yǔ)句Activesheet.UsedRange.Address返回當(dāng)前工作表已使用單元格區(qū)域的地址


?end(xlup).row與usedrange.row的探討

說(shuō)到這里,上面第三條已用單元格區(qū)域的最后一行的列序數(shù): UsedRange .Row+ UsedRange. Rows.Count-1 ,我們平時(shí)時(shí)獲取已用單元格區(qū)域的最后一行的列序數(shù)一般都是用range("").end(xlup).row。

那么這兩種方法的區(qū)別是什么呢?

對(duì)于上圖

Sub s()

ss = Sheet1.UsedRange.Row + Sheet1.UsedRange.Rows.Count - 1

End Sub

Sub t()

tt= Sheet1.Range("a65536").End(xlUp).Row

End Sub

兩段代碼得到的最后一行的行數(shù)是一樣的。

但是,如果是下圖的情況,兩者就有區(qū)別。

ss =9,而 tt=4。

總結(jié):對(duì)于確定某一列一定有該Sheet已用單元格區(qū)域的最后一行的話,用end(xlup).row UsedRange .Row+ UsedRange. Rows.Count-1都可以,但是如果Sheet中不確定是那一列有該Sheet已用單元格區(qū)域的最后一行,這個(gè)時(shí)候就只能用“ UsedRange .Row+ UsedRange. Rows.Count-1 ”獲取已用單元格區(qū)域的最后一行的列序數(shù)。

這段話有點(diǎn)拗口,希望反復(fù)斟酌理解。很有用處。

END

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多